如何在命令行中编译多个java源文件

Posted

技术标签:

【中文标题】如何在命令行中编译多个java源文件【英文标题】:How to compile multiple java source files in command line 【发布时间】:2011-06-15 14:33:11 【问题描述】:

我知道运行javac file1.java 会产生file1.class 如果file1.java 是唯一的源文件,那么我可以说java file1 来运行它。

但是,如果我有 2 个源文件,file1.javafile2.java,那么我该如何构建程序?

【问题讨论】:

这是否意味着两个文件都有 main 方法或应用程序有 2 个入口点? ***.com/questions/6623161/… 【参考方案1】:

尝试以下方法:

javac file1.java file2.java

【讨论】:

这是硬编码的,我们如何使用来自$(find .)等的结果?【参考方案2】:

或者你可以使用下面的方法来编译当前目录下的所有java源文件..

javac *.java

【讨论】:

不,它不是递归的。 * 是通配符的符号。这意味着这个目录中所有以“.java”结尾的东西【参考方案3】:

这是另一个示例,用于在嵌套目录中编译 java 文件。

我试图从命令行构建它。这是来自“gradle”的示例,它具有依赖项“commons-collection.jar”。有关详细信息,请参阅“gradle: java quickstart”示例。 -- 当然,你会使用“gradle”工具来构建它。但我想用一个依赖 jar 来扩展这个例子,对于一个嵌套的 java 项目。

注意:你需要'gradle binary or source'发行版,示例代码在:'samples/java/quickstart'

% mkdir -p temp/classes
% curl --get \
    http://central.maven.org/maven2/commons-collections/commons-collections/3.2.2/commons-collections-3.2.2.jar \
        --output commons-collections-3.2.2.jar

% javac -g -classpath commons-collections-3.2.2.jar \
     -sourcepath src/main/java -d temp/classes \
      src/main/java/org/gradle/Person.java 

% jar cf my_example.jar -C temp/classes org/gradle/Person.class
% jar tvf my_example.jar
   0 Wed Jun 07 14:11:56 CEST 2017 META-INF/
  69 Wed Jun 07 14:11:56 CEST 2017 META-INF/MANIFEST.MF
 519 Wed Jun 07 13:58:06 CEST 2017 org/gradle/Person.class

【讨论】:

【参考方案4】:

1.use wildcard

2.use options

3.https://docs.oracle.com/javase/8/docs/technotes/tools/windows/javac.html

【讨论】:

这怎么可能? @file 期望提供的文件包含要编译的文件的名称。 对不起,我忘了检查我的答案。现在,我贴上官方说明。【参考方案5】:

或者您可以只使用javac file1.java,然后再使用javac file2.java

【讨论】:

以上是关于如何在命令行中编译多个java源文件的主要内容,如果未能解决你的问题,请参考以下文章

Java在命令行中编译和运行java

在命令行中使用 maven 编译整个项目后如何运行单个类? [复制]

如何在命令行中编译和链接项目?

转帖windows命令行中java和javacjavap使用详解(java编译命令)

如何在 Windows 的命令行中使用 MinGW 编译器?

如何在 Windows 命令行中使用通配符解码多个文件 [关闭]