Compile all files in src?
以下是我得到的:
1 2 3 4 5
| /myjava/compile.cmd
/myjava/src/a/HelloWorld.java
/myjava/src/b/Inner.java
/myjava/src/b/Inner2.java
/myjava/bin |
HeloReld:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| package a_pack;
import b_pack.Inner;
import b_back.Inner2;
public class HelloWorld {
public static void main (String[] args ) {
System. out. println("Hello, World");
Inner myInner = new Inner ();
myInner. myInner();
Inner2 myInner2 = new Inner2 ();
myInner2. myInner();
}
} |
Java语言
1 2 3 4 5 6 7 8 9
| package b_pack;
public class Inner {
public void myInner () {
System. out. println("Inner Method");
}
} |
内部2.java
1 2 3 4 5 6 7 8 9
| package b_pack;
public class Inner2 {
public void myInner () {
System. out. println("SecondInner");
}
} |
现在我要做的是编译这个以便运行。
我可以用以下代码编译它:
javac -d bin src/a/HelloWorld.java src/b/Inner.java src/b/Inner2.java
但我想使用一个不需要列出每个子文件夹的通用命令。我该怎么做?
- 创建JAR文件,然后….
- 你需要编译你所引用的所有文件,而不是寻找一种解决方法。
- 您应该使用Ant或Maven设置一个构建脚本,并让它为您考虑这个问题。
- @ HunterMcMillen是否有一个命令"编译所有子目录中的每个Java文件"?
- 看看这个
由于您的HelloWorld类导入了对Inner和Inner2类的引用,因此可以使用javac sourcepath标志编译这三个类:
1
| javac -d bin -sourcepath src src/a/HelloWorld.java |
- 是的,不,这给了我一个(0)。pastebin.com/pxqjjyw
- 这很奇怪……您从哪个目录调用javac命令?
- 是的,您没有创建b_pack包。您创建了a.pack和b.pack包。所以您必须修改源文件中包的名称。在HelloWord类中,您必须使用"a.pack"包而不是package a_pack包。在另外两个类中,您必须使用package b.pack而不是package b_pack。希望它有帮助。
- 好的,是的,把src/a和src/b文件夹改成src/a_pack,而src/b_pack修复了它。谢谢。
- 好啊。很高兴我帮助了!