我知道这是一个非常古老和常见的问题,但我仍然不能让它工作!
我正在使用Intellij在Windows7上开发一个Java程序,我在编译时添加了工件的文件输出以生成jar。该程序在IDE中运行良好,现在我想在没有IDE的情况下,在命令行中运行它。
目录结构如下:
项目
-out
--ProjectName
---project.jar
-lib (under lib there are all the jar libraries used in the project)
-..(希望你能理解上面的结构)
因此,我输入project.jar所在的目录,并键入以下内容:
java -cp ..\..\..\lib -jar project.jar我得到了异常NoClassDefFoundError的错误消息,但实际上该类包含在lib目录下的jar中。
这应该很简单,但我不能让它工作。
请帮帮我!非常感谢!
发布于 2015-01-23 02:02:40
我也遇到过类似的问题..并找出了一个solution..Im,不确定这是否已经是given..If,所以忽略它。该场景基于Maven包文件(Jar),将与JAVA学习者的类名一起运行。为此,请使用命令:java -classpath jarfile packagename.classname,例如: java -classpath target\MavenTest-1.0-SNAPSHOT.jar org.first.edu.App
发布于 2013-08-10 01:51:55
如果不想单独列出所有jars,请尝试java -cp ..\..\..\lib\*.jar -jar project.jar
发布于 2013-08-10 18:31:20
我找到了问题和解决方案。如果我使用-jar参数运行project.jar,-classpath参数将被忽略,反之亦然。因此,我在.jar文件中添加了类路径(通过Intellij中的类路径文本框完成),并尝试了几次。最后我发现,我需要指定以点开头的类路径!这意味着相对路径从当前目录开始,并且更远。这非常令人惊讶,因为我相信一个强制性的点来表示当前的目录只在Linux中使用(而我使用的是Windows)。似乎Java对此的处理方式有所不同。
https://stackoverflow.com/questions/18152696
复制相似问题