在Java中使用命令行编译多个包

问题描述 投票:0回答:5

嗨,我一直在使用 IDE,但现在我需要从命令行运行和编译。

问题是我有多个软件包,我试图找到答案,但没有任何效果。

所以我有

src/
  Support/ (.java files)
  Me/ (.java files) 
  Wrapers/ (.java files)  

你知道如何用javac编译所有东西吗?

java command-line package javac
5个回答
12
投票

这应该可以做到(可能需要通过

-cp
命令行开关添加额外的类路径元素):

javac Support/*.java Me/*.java Wrapers/*.java

但是,如果您的构建过程变得更加复杂(而且确实会如此!),您应该考虑使用 Apache Ant 来实现构建自动化。


10
投票

您应该使用 MavenAnt 等构建工具来完成此类任务。

在初始阶段,当项目不是很复杂时,您可以使用以下行进行编译,并使用适当的类路径(如@Michael建议):

javac Support/*.java Me/*.java Wrapers/*.java


6
投票
javac -d compiled $(find src -name *.java)

2
投票

如果您确实需要仅使用 javac 和标准 UNIX 命令,您可以这样做:

find src -name \*.java -print0 | xargs -0 javac -d classes

2
投票

真正的答案是 javac -d (要构建和放置类的位置) -sourcepath (根目录下的包的源) -cp (依赖项的类路径,它又可以是构建和保存类的类文件夹) java 文件的完整限定名。

Ex javac -d 类 -sourcepath src -cp 类 sr

© www.soinside.com 2019 - 2024. All rights reserved.