首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Windows上的命令行中运行jar (类路径)

问在Windows上的命令行中运行jar (类路径)
EN

Stack Overflow用户
提问于 2013-08-10 01:50:35
回答 4查看 7.5K关注 0票数 1

我知道这是一个非常古老和常见的问题,但我仍然不能让它工作!

我正在使用Intellij在Windows7上开发一个Java程序,我在编译时添加了工件的文件输出以生成jar。该程序在IDE中运行良好,现在我想在没有IDE的情况下,在命令行中运行它。

目录结构如下:

项目

代码语言:javascript
复制
-out

--ProjectName

---project.jar

-lib (under lib there are all the jar libraries used in the project)

-..

(希望你能理解上面的结构)

因此,我输入project.jar所在的目录,并键入以下内容:

代码语言:javascript
复制
java -cp ..\..\..\lib -jar project.jar

我得到了异常NoClassDefFoundError的错误消息,但实际上该类包含在lib目录下的jar中。

这应该很简单,但我不能让它工作。

请帮帮我!非常感谢!

EN

回答 4

Stack Overflow用户

发布于 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

票数 1
EN

Stack Overflow用户

发布于 2013-08-10 01:51:55

如果不想单独列出所有jars,请尝试java -cp ..\..\..\lib\*.jar -jar project.jar

票数 0
EN

Stack Overflow用户

发布于 2013-08-10 18:31:20

我找到了问题和解决方案。如果我使用-jar参数运行project.jar,-classpath参数将被忽略,反之亦然。因此,我在.jar文件中添加了类路径(通过Intellij中的类路径文本框完成),并尝试了几次。最后我发现,我需要指定以点开头的类路径!这意味着相对路径从当前目录开始,并且更远。这非常令人惊讶,因为我相信一个强制性的点来表示当前的目录只在Linux中使用(而我使用的是Windows)。似乎Java对此的处理方式有所不同。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18152696

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档