2

我编写了一个需要 Java 1.6 的 Java GUI 应用程序(使用 Netbeans 6.7)。我在我的 XP PC 和我的 Mac OSX (10.5.7) 上成功地运行了它。

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

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

  • 安装最新的 JRE
  • 运行 JarFix

我已经验证了:

  • JRE 安装在正确的位置
  • jar文件关联正确
  • 应用程序工作(因为我已经在 XP 和 Mac OSX 上测试过,客户端可以从命令行运行它)

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

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

非常感谢。普伦博

4

3 回答 3

2

完全相同的 JAR 文件是否适用于其他操作系统?

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

Main-Class: com.mypackage.MyProgram

并且它后面没有空行,那么Java会忽略该行,它将无法找到程序的主类。

有关如何将应用程序打包到 JAR 中的详细信息,请参阅Sun 的 Java 教程,了解如何在 JAR 文件中部署 Java 程序;它还包含有关清单文件需要以空行结尾的警告。

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

java -version

查看正在使用的 Java 版本。

于 2009-08-18T14:29:50.983 回答
1

我正在运行 Vista Enterprise,它与其他 Windows 版本(关于 Java)几乎没有区别。

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

  • 您是否尝试过:右键单击 Jar -> 打开方式 -> Java(TM) Platform SE Binary
  • 可能与权限有关吗?(可能不是,因为它通过命令行运行)
  • 您是否在关闭UAC的情况下尝试过?(UAC 沙箱 java 应用程序,它们不能写入某些位置,如 Program Files)
  • 您是否确保它们在 JAVA_HOME/lib/ext/ 中具有与您相同的文件
  • 您可以尝试设置环境变量:
    • JAVA_HOME=<你的java_home>
    • 类路径=。
    • PATH=<your_java_home>\bin
于 2009-08-18T18:26:27.210 回答
0

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

于 2009-08-26T17:51:45.790 回答