Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/348.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何根据另一个类和一些库编译Java类?_Java_Classpath_Javac - Fatal编程技术网

如何根据另一个类和一些库编译Java类?

如何根据另一个类和一些库编译Java类?,java,classpath,javac,Java,Classpath,Javac,我的结构是这样的 \Project1 \src \pkg1 Main.java \pkg2 Auxillary.java \Destination \class \lib 我需要将Main.java编译成\Destination\class,Main.java在auxilary.java中有依赖项,在\lib中有jar 我在Project1目录中 我试过了 javac -cp Destination\lib\*;src\pkg2

我的结构是这样的

\Project1 
  \src
    \pkg1
      Main.java
    \pkg2
      Auxillary.java
  \Destination
    \class
    \lib
我需要将Main.java编译成\Destination\class,Main.java在auxilary.java中有依赖项,在\lib中有jar

我在Project1目录中

我试过了

javac -cp Destination\lib\*;src\pkg2\* -d Destination\class
但是,我得到了一个针对auxilary.java的


我做错了什么?

类路径项不能引用源目录。试试这个:

javac -Djava.ext.dirs=Destination\lib -d Destination\class
      src\pkg1\Main.java src\pkg2\Auxiliary.java
i、 e.一次性编译所有源代码。或者:

javac -Djava.ext.dirs=Destination\lib -d Destination\class
      src\pkg2\Auxiliary.java

javac -Djava.ext.dirs=Destination\lib -cp Destination\class
      -d Destination\class src\pkg1\Main.java

这将首先编译Auxiliary.java,然后在编译Main.java时使用其目标目录作为类路径的一部分。

您可以使用ant脚本简化这些步骤。试试看

嗯。类路径项不能引用源目录。-最好使用
-sourcepath
,但如果没有设置,则类路径可以很好地查找源文件。我想在这种情况下,问题是kunjan确实指明了包目录而不是根目录(即
src
)。当然,这里的
*
也是错误的<代码>-cp目的地\lib\*;不过,src应该可以正常工作。