简单的挥杆应用。 jar文件在我的计算机上运行,​​但不在其他计算机上

时间:2012-05-03 08:39:53

标签: java netbeans jar manifest

这是我的第一个问题,请为任何错误道歉。我会尽力提供所有信息。基本上我写了一个简单的swing应用程序,它只是将图像加载到JPanel中并显示它。我正在使用Netbeans 7.1,我有最新版本的Java SDK。 无论如何,我使用NetBeans 7.1中的“Build”功能将我的应用程序部署到Jar文件中。当我双击PC上的Jar文件时,它运行没有问题。但是当我把它放在其他计算机上时(到目前为止已经测试过两次,都是最新的JRE)它无法打开,引用了以下错误:

  

无法找到主要类:swong.Startup。程序将退出

swong是我的包名,Startup是我的main方法的位置。我已经检查了使用Netbeans的构建创建的清单文件,它[manifest]确实包含了我的main方法类的位置。

从搜索开始,我遇到类似路径设置错误的类似问题,但我不明白这是如何导致我的特定错误的。

如果有人可以帮助我,我会在月球上空。我已经学习了一年左右的java,而且我有一个很好的处理,但我从来没有能够制作一台在不是我自己的电脑上运行的Jar。所以,10分并提前感谢。

XO

编辑:谢谢你的回复。我正在轮班工作并且淹没了,但我明天将测试并捅这些回复并提供更多信息。再次感谢。 XO

3 个答案:

答案 0 :(得分:2)

检查您的jar文件是否具有以下结构(至少)

jarfile.jar
  |---------- swong
                |---------- Startup.class
  |---------- META-INF
                |---------- MANIFEST.MF

似乎缺少“Startup”课程。也许你的jar只包含.java文件,而不是编译的类。

答案 1 :(得分:2)

我在发布应用时遇到了同样的问题。有一个解决方案,您使用'java -jar AppName.jar'创建批处理文件,并要求用户双击此批处理文件以执行您的应用程序。我所做的是为您的应用程序提供JRE安装exe(例如:jre_1.7.0)。 现在创建一个批处理文件(install.bat),其中写入以下命令

jre_1.7.0 - >这将在用户的电脑上安装jre

set path =“C \ Program Files \ Java \ jre_1.7.0 \ bin”

java -jar yourAppName.jar

为什么我安装了JRE,因为不同的人安装了不同的JRE版本。因此,这很难设置安装的JRE的bin文件夹的路径。调用'java -jar'命令。因此,当您知道JRE安装将创建哪些文件夹时,可以使用“java-jar”命令轻松设置路径并执行jar文件。

答案 2 :(得分:0)

当您尝试使用不同的Java Runtime Environment然后java7启动java7编译的类时,此错误消息可能是错误的java7错误。您是否验证过您的.jar是在其他测试机器上的Java7环境中启动的?有时它会发生,你已经安装了不同版本的JRE,你可能不确定实际启动了哪一个。

要检查使用的环境,您可以在注册表中检查以下值: HKEY_CLASSES_ROOT \ jar文件\壳\开放\命令

这应该指向您最新的JRE。或者,如果您希望与java6保持兼容,请在构建环境中定义适当的编译级别。