如何在命令行中编译多个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.java
和 file2.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源文件的主要内容,如果未能解决你的问题,请参考以下文章
在命令行中使用 maven 编译整个项目后如何运行单个类? [复制]
转帖windows命令行中java和javacjavap使用详解(java编译命令)