specifying log4j in classpath

…衆ロ難τιáo~ 提交于 2019-12-11 05:56:38

问题


I believe this is how I can compile and run a file that uses external library. I'm using Windows.

top level directory
|
|-log4-1.2.17.jar
|-MyApp.java
|-com
     |-foo
          |-Bar.java

Compiling

javac -cp log4j-1.2.17.jar;. com\foo\Bar.java
javac -cp log4j-1.2.17.jar;"com\foo";. MyApp.java

Executing

java -cp log4j-1.2.17.jar;"com\foo";. MyApp

Compiling itself failed.


回答1:


simple batch script, for compiling all your project

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%

add it to top level dir and run
EDIT
step by step

javac ./com/foo/Bar.java -classpath log4j-1.2.17.jar  

next

javac ./MyApp.java -classpath log4j-1.2.17.jar;./  

run

java -classpath log4j-1.2.17.jar;./ MyApp  



回答2:


Include current directory in 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.



回答3:


Y need to include the local directory. If you want to do it in the current directory it would be something like:

javac -cp .;log4j-1.2.17.jar Bar


来源:https://stackoverflow.com/questions/12262015/specifying-log4j-in-classpath

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!