终端编译Java源文件含有package的处理方法

Java 源文件不含 package 时,使用javac编译:

javac test.java

如果源文件含有 package 应该怎么处理呢?

举例:

文件 1:Main.java(位置:~/com/stevenos/java/Main.java

1
2
3
4
5
6
7
8
9
10
11
package com.stevenos.java;

import com.stevenos.utils.DateTools;

public class Main {
public static void main(String[] args) {
String text;
text = DateTools.formatTime();
System.out.println(text);
}
}

文件 2:DateTools.java(位置:~/com/stevenos/utils/DateTools.java

1
2
3
4
5
6
7
8
9
10
11
12
package com.stevenos.utils;

import java.text.SimpleDateFormat;
import java.util.Date;

public class DateTools {
public static String formatTime() {
Date day = new Date();
44SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
44return sdf.format(day);
}
}

编译命令

javac -d <dir> <src>

  1. 首先分别编译每个文件:

    1
    2
    javac -d . ~/com/stevenos/java/Main.java
    javac -d . ~/com/stevenos/utils/DateTools.java

    . 代表在当前目录下生成文件夹,可以自行更换。

    image-20200223095756528

    如果在当前目录生成,可以看到目录下有:

    • com/stevenos/java/Main.class
    • com/stevenos/utils/DateTime.class

    如果目录(包)中有多个文件,可以使用通配符 *

    image-20200223100326158

  2. 直接运行:

    Java 运行主方法。

    java com.stevenos.java.Main

    image-20200223100543259

搞定

PS.

输出中文时,若非编写时使用 GBK 编码,可能会出现 GBK 编码映射错误;

UTF-8 编码的需要加上参数:-encoding UTF-8

打赏
  • 版权声明: 本博客采用 Apache License 2.0 许可协议。
    转载请注明出处: https://ryzenx.com/2020/02/Java-compile-package/

谢谢你的喜欢~

支付宝
微信