Running a Java program from the command line that depends on a jar file?
I have a simple Java file Q.java that depends on an external library file X.jar. Both Q.java and X.jar are in the same directory. I can compile Q.java from the command line by doing: "javac -cp X.jar Q.java". This generates a Q.class file. How do I run this now? I tried all these:
1) java Q 2) java -cp X.jar Q
I keep getting a Exception in thread "main" java.lang.NoClassDefFoundError: Q Caused by: java.lang.ClassNotFoundException: Q
So 开发者_如何学Pythonhow do I run this from the command line now that I have the class file?
java -cp X.jar:. Q
You have to specify in the classpath that you want to use the JAR dependency AND the current local directory to resolve classes.
Edit suggested in the comments:
On Windows, replace :
by ;
:
java -cp X.jar;. Q
Set the current directory in your classpath, it should solve the problem. Most of the time, we need current directory in the classpath, so generally I advice to set "." (without quotes) in your system CLASSPATH environment variable instead of setting for each run.
精彩评论