繁体   English   中英

使用classpath问题从命令行运行Java项目?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM