2009-08-18 60 views
2

我已经编写了需要Java 1.6的Java GUI应用程序(使用Netbeans 6.7)。我成功地在XP PC和我的Mac OSX(10.5.7)上运行它。无法在Vista Business上执行Java应用程序 - “无法找到主类...程序将退出”

我的客户端正在运行Vista Business,并且无法通过双击jar文件来运行应用程序。他可以从命令行执行它:“javaw -jar ...”收到的错误是:“无法找到主类...程序将退出”。

我问过客户端执行以下操作:

  • 安装最新的JRE
  • 运行JarFix

我验证过:

  • JRE是安装在正确位置
  • jar file association is correct
  • 应用程序的工作(我已经测试它在XP和Mac OSX和客户端可以从命令行运行它)

上还有什么我可以调查任何想法?请注意,Netbeans创建了主jar文件,并创建了一个lib目录以及其他一些Jarfiles。我解压缩了jarfile并检查了清单文件(看起来不错)。正确的主类也在应用程序的jar文件中。

客户端是否需要小心从Vista中执行应用程序的位置?

非常感谢。 Prembo

+0

经过一番调查,事实证明客户端并未遵循安装说明。事实证明,他们试图从包含应用程序的zip文件中运行jar文件!这会教我!无论如何感谢您的伟大建议。 – Prembo 2009-08-20 23:12:18

回答

2

完全相同的JAR文件在其他操作系统上工作吗?

JAR文件中的清单文件(META-INF/MANIFEST.MF)是否正确?需要注意的一点是清单文件必须以空行结束;如果没有,清单文件中的最后一行将被忽略。因此,举例来说,如果你的manifest文件的最后一行是这样的:

Main-Class: com.mypackage.MyProgram 

,它不跟一个空行,那么Java将忽略行和它将无法找到程序的主要类。

请参阅Sun's Java Tutorial about deploying Java programs in JAR files了解有关如何将应用程序打包到JAR中的确切详情;它还包含有关清单文件需要以空行结束的警告。

另外,仔细检查是否使用了正确版本的Java。您是否使用与Windows XP完全相同的Java版本?请尝试:

java -version 

查看正在使用哪个Java版本。

+0

是的 - 确切的jar文件可以在Mac OSX,XP和Vista Business的命令行中使用。 Manifest由Netbeans创建,所以也可以。我已经验证过,最后一行仅仅是注释行,所以它不是问题。 Java版本是不同的,但我已经尝试了各种1.6.x版本,并在不同的操作系统上都可以(当然除了Vista Business) – Prembo 2009-08-18 14:40:51

+0

感谢您的建议...... – Prembo 2009-08-18 14:43:23

1

我正在运行Vista企业版,它与其他Windows版本(关于Java)之间的差异很小。

这里有一些可能会或可能无法正常工作随机的想法:

  • 你试过:右键单击该罐 - >打开方式 - >的Java(TM)平台SE二进制
  • 难道权限相关? (可能不是因为它通过命令行运行)
  • 您是否试过UAC? (UAC沙箱java应用程序,并且它们不能写入程序文件等特定位置)
  • 您是否确定它们具有与您在JAVA_HOME/lib/ext/
  • 中相同的文件?您可以尝试设置环境变量:
    • JAVA_HOME = <your_java_home>
    • CLASSPATH =。
    • PATH = <your_java_home> \ BIN
+0

感谢您的建议。我会调查。 – Prembo 2009-08-19 17:00:42

0

有时JDK需要单独安装,与净豆IDE一起。如果您安装了jdk,那么您可以尝试检查环境变量中的类路径,路径。