3

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

找不到主类:swong.Startup。程序将会退出

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

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

如果有人可以帮助我,我会欣喜若狂。我已经学习了一年左右的java,并且掌握了很好的方法,但是我从来没有能够制作一个可以在不是我自己的计算机上运行的Jar。所以,10分,提前感谢。

xo。

编辑:感谢您的回复。我正在轮班工作并且被淹没了,但我明天会测试和戳这些回复并提供更多信息。再次感谢。xo

4

3 回答 3

2

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

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

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

于 2012-05-03T08:44:30.517 回答
2

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

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

设置路径="C\Program Files\Java\jre_1.7.0\bin"

java -jar yourAppName.jar

为什么我安装了 JRE,因为不同的人安装了不同的 JRE 版本。因此,这使得设置已安装 JRE 的 bin 文件夹的路径和调用“java -jar”命令变得困难。因此,您知道 JRE 安装将创建哪些文件夹,因此很容易设置路径并使用“java-jar”命令执行 jar 文件。

于 2012-05-03T09:00:48.313 回答
0

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

要检查使用了哪个环境,您可以在注册表中检查以下值:HKEY_CLASSES_ROOT\jarfile\shell\open\command

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

于 2012-05-03T09:17:18.773 回答