我知道这已经是一个很老的和常见的问题,但是我仍然无法得到它的工作!
我正在使用Intellij开发Windows 7上的Java程序,在编译时添加工件的文件输出以生成一个jar文件。 该程序在IDE中正常工作,现在我想在命令行中不使用IDE来运行它。
目录结构如下所示:
项目
-out --ProjectName ---project.jar -lib (under lib there are all the jar libraries used in the project) -..
(希望你能理解上面说明的结构)
所以我进入了project.jar所在的目录,然后input以下内容:
java -cp ..\..\..\lib -jar project.jar
我得到了NoClassDefFoundError
exception的错误信息,但实际上这个类被包含在lib目录下的一个jar文件中。
这应该是非常简单的,但我不能让它工作。
请帮忙! 非常感激!
我遇到了一个类似的问题..并想出了一个解决方案..我不知道这是否已经给予..如果这样忽略这个..该场景是基于Maven包文件(jar)与类名称运行JAVA学习者。 所以为此使用命令: java -classpath jarfile packagename.classname例如:java -classpath target \ MavenTest-1.0-SNAPSHOT.jar org.first.edu.App
尝试java -cp ..\..\..\lib\*.jar -jar project.jar
如果您不想单独列出所有jar
我发现问题和解决方案。 如果我使用-jar参数运行project.jar,则-classpath参数将被忽略,反之亦然。 所以我在.jar文件中添加了类路径(通过Intellij中的类路径文本框完成),并尝试了几次。 最后我发现,我需要指定以点开头的类路径! 这意味着相对路径从当前目录开始,然后进一步。 这是相当令人惊讶的,因为我相信一个强制的点来表示当前目录只在Linux中使用(当我使用Windows时)。 似乎Java处理这个不同。
首先确保你正在从保存你的jar的目录中运行命令,然后在命令提示符中输入这个命令:
java -cp“<您的Jar名称:Jar Lib>”<您的包名称和主类 – >
例如 : –
java -cp“project.jar:lib / *”com / foo / bar / main