无法在Vista Business上执行Java应用程序-“;找不到主类。。。“程序将退出”;

无法在Vista Business上执行Java应用程序-“;找不到主类。。。“程序将退出”;,java,windows-vista,netbeans6.7,executable-jar,Java,Windows Vista,Netbeans6.7,Executable Jar,我已经编写了一个需要Java1.6的JavaGUI应用程序(使用NetBeans6.7)。我成功地在我的XP PC和MacOSX(10.5.7)上运行了它 我的客户端正在运行Vista Business,无法通过双击jar文件来运行应用程序。他可以从命令行执行它:“javaw-jar…”收到的错误是:“找不到主类…程序将退出” 我已要求客户执行以下操作: 安装最新的JRE 运行JarFix 我已经证实: JRE安装在正确的位置 应用程序工作正常(正如我在XP和MacOSX上测试过的,客户

我已经编写了一个需要Java1.6的JavaGUI应用程序(使用NetBeans6.7)。我成功地在我的XP PC和MacOSX(10.5.7)上运行了它

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

我已要求客户执行以下操作:

  • 安装最新的JRE
  • 运行JarFix
我已经证实:

  • JRE安装在正确的位置
  • 应用程序工作正常(正如我在XP和MacOSX上测试过的,客户端可以从命令行运行)
还有什么我可以调查的吗?注意,Netbeans创建了主jar文件,以及一个包含两个其他jar文件的lib目录。我已经解压了JAR文件并检查了清单文件(看起来不错)。正确的主类也在应用程序的JAR文件中

客户端是否需要注意应用程序在Vista中的执行位置

非常感谢。
Prembo

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

JAR文件中的清单文件(META-INF/manifest.MF)是否正确?需要注意的一个问题是清单文件必须以空行结尾;否则,将忽略清单文件中的最后一行。例如,如果清单文件中的最后一行是这样的:

Main-Class: com.mypackage.MyProgram
如果后面没有空行,那么Java将忽略该行,并且无法找到程序的主类

有关如何在JAR中打包应用程序的详细信息,请参阅;它还包含关于清单文件需要以空行结尾的警告

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

java -version

查看使用的是哪个Java版本。

我运行的是Vista Enterprise,它与其他Windows版本(关于Java)几乎没有什么区别

以下是一些可能有效也可能无效的随机想法:

  • 您是否尝试过:右键单击Jar->Open with->Java(TM)Platform SE Binary
  • 可能与权限有关吗?(可能不是,因为它是通过命令行运行的)
  • 你试过了吗?(UAC沙盒是java应用程序,它们无法写入程序文件等特定位置)
  • 您是否确保它们的文件与您在JAVA_HOME/lib/ext中的文件相同/
  • 您可以尝试设置环境变量:
    • 爪哇之家酒店=
    • 类路径=
    • 路径=\bin

有时需要单独安装JDK和NetBeans IDE。如果安装了jdk,则可以尝试检查环境变量中的类路径和路径。

是-确切的jar文件在Mac OSX、XP和Vista Business中的命令行中工作。清单是由Netbeans创建的,所以是OK。我已经验证了最后一行只是一个注释行,所以它不是一个问题。Java版本是不同的,但我已经尝试了各种1.6.x版本,并且在不同的OSs上都可以(当然除了Vista Business),谢谢你的建议。我会调查的。经过一点调查后,发现客户没有按照安装说明进行操作。事实证明,他们试图从包含应用程序的zip文件中运行jar文件!那会教我的!无论如何,谢谢你的建议。