2012-06-23 25 views
5

当我尝试运行在IntelliJ中创建的jar文件时,我遇到了问题。
我遵循这里列出的步骤:How to build jars from IntelliJ properly?,并使用IntelliJ搜索范围很广的其他人,但没有找到解决方案。
在菜单项目结构>工件部分我有包和主类的名称,我也尝试指定'类路径'位使用相对和绝对路径源文件和.class文件(这似乎隐藏在IntelliJ Project显示树中),但即使是所有这些(我也确保在每次更改内容时重新生成jar),我得到“无法找到主类,程序将退出”。当我尝试运行jar时发出消息。没有找到主类,IntelliJ构建一个罐子

在主项目文件夹中,有src和out。
出包含“生产”与包树和类文件
出来还包含“文物”与jar文件夹,JAR可执行
src包含图像的文件夹中,META-INF和包树。
在封装所述第一文件夹中包含的主类,所以SRC/ravelDemo/RavelDemoMain.java

在项目设置>工件,主类被列为ravelDemo.RavelDemoMain
目前,类路径是出\ production \ RavelSequence v1.03 \ ravelDemo \,但这个和我指定的其他类路径(或留空)似乎并没有指向正确的位置。 (RavelSequence v1.03是该项目的名称)。

我在做什么错?

+0

查看这些截屏视频:http://www.screenr.com/Eyg8,http://www.screenr.com/FWM8。如果您可以通过类似的步骤重现问题,请将示例项目添加到问题中。 – CrazyCoder

+0

感谢您的回复!这是一个非常方便的网站。这里是我得到的:http://www.screenr.com/EMl8 – sideways8

+0

这里是一个示例项目从头开始创建相同的问题,仿照你的样本:http://www.screenr.com/6Ml8 – sideways8

回答

3

根据讨论,上面的注释显示IntelliJ IDEA正在构建有效的可执行jar,并且在Manifest中正确指定了主类,当使用项目目标从命令行执行java -jar ...命令用户机器上的JDK版本。

问题是,它不能在双击@sideways8系统上工作。这可能是由于Windows注册表中损坏的默认Java安装或错误的.jar文件类型关联造成的。这是机器特定的问题,因为我没有问题在我的系统上通过双击运行共享项目jar

要解决此问题,您可以尝试从Control Panel上卸载此计算机上存在的所有Java版本。 Programs and Features,然后从头开始安装新的JDK,以便它是系统上唯一的JDK,并且该文件类型由它处理。

我用Total Commander它有一个很好的功能,可查看/编辑文件关联(File | Associate With...),这里是.jar协会是如何显示的,当我按Edit type...

jar file type

+0

好的,我正在下载一个新的jdk。 如果我试图与其他人分享这个罐子,他们是否会遇到同样的问题,根据您的经验?有没有办法用jar打包相应的jdk,以便不担心系统的本地环境? – sideways8

+0

这是非常罕见的问题,大多数安装了Java的用户将能够运行你的应用程序。请注意,您可能希望定位JDK 1.6版本,因为它可能仍然是许多机器的默认设置。如果您使用JDK 1.7构建,那么安装了JDK 1.6的用户将无法运行您的应用程序。您可以通过将目标JDK更改为1.6或在'Settings'中添加'-source 1.6 -target 1.6'选项来修复它。 '编译器'| 'Java Compiler',**其他命令行参数**。 – CrazyCoder

+0

如果您想100%确定您的应用程序在目标机器上运行,请将其捆绑到JRE中,或者将其包装到安装程序中,以验证该机器是否具有运行应用程序所需的最低版本JDK/JRE以及下载/如果系统不符合您的要求,则自动安装它。 – CrazyCoder

0

我有同样的问题。这个jar文件是用IntelliJ IDEA或其他IDE创建的。我发现在我的情况下,我的电脑上安装了两个版本的java(java 6 & java 8)。 这是系统配置错误的问题。因此请删除您拥有的任何Java版本并重新安装,并解决问题。