[英]running a java project from command line using classpath issue?
我正在尝试从Linux中的命令行运行Java项目,我的项目使用了两个外部jar文件。 我给出的命令是
java -classpath -jar bin:common-cli-1.2.jar:BuildFrameworkLibrary.jar com.kpit.goa.common.tools.kivibuild.KIVIBuild
其中KIVIBuild是包含主要功能的类。 但是出现的错误是:
baibhav@baibhav:~/git/KiviBuild/Infra/RepoManagement/BuildManagement/KIVIBuild$ java -classpath bin:common-cli-1.2.jar:BuildFrameworkLibrary.jar com.kpit.goa.common.tools.kivibuild.KIVIBuild
给
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/cli/ParseException
Caused by: java.lang.ClassNotFoundException: org.apache.commons.cli.ParseException
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: com.kpit.goa.common.tools.kivibuild.KIVIBuild. Program will exit.
您需要一个路径分隔符,例如
bin/common-cli-1.2.jar:BuildFrameworkLibrary.jar
冒号将各个jar文件的路径分开。 例如,在上面,您引用的是两个文件
bin/common-cli-1.2.jar
BuildFrameworkLibrary.jar
并引用包含,例如,如果他们在你的编译的类的目录(比方说) target/classes
,然后使用:
target/classes:bin/common-cli-1.2.jar:BuildFrameworkLibrary.jar
(相对于您当前的工作目录)
使用以下命令
javac -classpath bin/common-cli-1.2.jar:bin/BuildFrameworkLibrary.jar KIVIBuild.java -d .
不要忘记在命令末尾添加点
检查是否存在/com/kpit/goa/common/tools/kivibuild/KIVIBuild.class
存在,请运行以下命令
java -classpath bin/common-cli-1.2.jar:bin/BuildFrameworkLibrary.jar com/kpit/goa/common/tools/kivibuild/KIVIBuild
http://www.linuxheadquarters.com/howto/classpath.shtml
而不是每次都在现有的classpath变量中设置一次一次就设置类路径,而只需运行java命令
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.