在classpath中指定log4j

时间:2012-09-04 10:54:56

标签: java jar classpath

我相信这是我编译和运行使用外部库的文件的方法。我正在使用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

编译本身失败。

3 个答案:

答案 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