javac编译 - 多个文件夹中的代码

时间:2011-10-25 19:34:55

标签: java compilation javac

我已经坐了一会儿而无法理解,虽然我认为这很容易......

我必须使用javac编译以下程序(该程序有一个类和一个测试类):

  • 一个类位于文件夹./src/cplx/
  • 测试类位于文件夹./test/cplx/
  • junit lib位于./lib

  • 类应该构建为./build/slasses
  • 测试类应该构建为./build/test

请帮我编写一个正确的javac命令来编译代码。


我使用建议的命令结束het以下错误,看起来测试类看不到我已经构建的类?

amaltea:testowanie/zad1% javac -d ./build/classes ./src/cplx/*.java
amaltea:testowanie/zad1% javac -classpath ./lib/junit-4.8.2.jar -d ./build/test ./test/cplx/*.java
./test/cplx/ComplexTest.java:20: cannot find symbol
symbol  : class Complex
location: class cplx.ComplexTest
                Complex a = new Complex(1.1, 2.2);
                ^
./test/cplx/ComplexTest.java:20: cannot find symbol
symbol  : class Complex
location: class cplx.ComplexTest
                Complex a = new Complex(1.1, 2.2);
                                ^
2 errors
amaltea:testowanie/zad1%

3 个答案:

答案 0 :(得分:4)

您只能使用javac指定一个根目标目录。如果您希望root本身不同,则需要单独编译它们。

javac -d ./build/classes ./src/cplx/*.java
javac -classpath ./lib/junit.jar -d ./build/test ./test/cplx/*.java

答案 1 :(得分:0)

虽然很高兴开始使用javac来掌握较低级别的内容并在开始使用更高级的东西之前理解语言和工具,但我认为一些Ant构建脚本或者像Eclipse或NetBeans这样的IDE会提供服务你好多了至少如果你只是想要一个结果而不是理解所有的细节。您可以随时了解更多相关信息。无论如何,官方文档应告诉您需要知道的内容:http://download.oracle.com/javase/6/docs/technotes/tools/windows/javac.html

答案 2 :(得分:0)

您必须在 -classpath 选项中再指定一项内容。 它应该是:

javac -classpath ./build/classes/:lib/junit-4.8.2.jar -d ./test/classes test/cplx/*.java

您的Complex.class文件所在的信息。