我相信这是我编译和运行使用外部库的文件的方法。我正在使用Windows。
top level directory
|
|-log4-1.2.17.jar
|-MyApp.java
|-com
|-foo
|-Bar.java
编译
javac -cp log4j-1.2.17.jar;. com\foo\Bar.java
javac -cp log4j-1.2.17.jar;"com\foo";. MyApp.java
执行
java -cp log4j-1.2.17.jar;"com\foo";. MyApp
编译本身失败。
答案 0 :(得分:0)
在java classpath中包含当前目录
java -cp log4j-1.2.17.jar;. MyApp
Why do you have to include current directory:
The default class path is the current directory. Setting the CLASSPATH variable or using the -classpath command-line option overrides that default, so if you want to include the current directory in the search path, you must include "." in the new settings.
答案 1 :(得分:0)
Y需要包含本地目录。如果你想在当前目录中这样做,那就像:
javac -cp .;log4j-1.2.17.jar Bar
答案 2 :(得分:0)
简单的批处理脚本,用于编译所有项目
set COMPILED_CLASSES=.\
set TEMP_FILE=temp
dir .\*.java /s /B > %TEMP_FILE%
javac -classpath log4j-1.2.17.jar;%COMPILED_CLASSES% -d %COMPILED_CLASSES% @%TEMP_FILE%
rm %TEMP_FILE%
将其添加到顶级目录并运行
的修改
一步一步
javac ./com/foo/Bar.java -classpath log4j-1.2.17.jar
下一个
javac ./MyApp.java -classpath log4j-1.2.17.jar;./
运行
java -classpath log4j-1.2.17.jar;./ MyApp