0

好吧,我制作了一个可执行 jar,其中包含一个通过应用程序运行的测试游戏。它对我来说运行良好,但对我的朋友来说却不行。它说它无法找到主要课程。那么他必须安装java jdk还是什么?有没有解决的办法?

4

4 回答 4

0

是的,有办法解决它。运行此脚本:

@ECHO off
SETLOCAL ENABLEDELAYEDEXPANSION
:: this .bat script creates a file association for executable .jar files
ECHO Creating .jar file association...
ECHO JAVA_HOME is %JAVA_HOME%
IF NOT DEFINED JAVA_HOME GOTO :FAIL
REG ADD "HKCR\jarfile" /ve /t REG_SZ /d "Executable Jar File" /f
REG ADD "HKCR\jarfile\shell" /ve /f
REG ADD "HKCR\jarfile\shell\open" /ve /f
ECHO REG ADD "HKCR\jarfile\shell\open\command" /ve /t REG_SZ /d "\"%JAVA_HOME%\bin\javaw.exe\" -jar \"%%1\" %%*" /f
REG ADD "HKCR\jarfile\shell\open\command" /ve /t REG_SZ /d "\"%JAVA_HOME%\bin\javaw.exe\" -jar \"%%1\" %%**" /f
REG ADD "HKLM\jarfile" /ve /t REG_SZ /d "Executable Jar File" /f
REG ADD "HKLM\SOFTWARE\Classes\jarfile\shell" /ve /f
REG ADD "HKLM\SOFTWARE\Classes\jarfile\shell\open" /ve /f
REG ADD "HKLM\SOFTWARE\Classes\jarfile\shell\open\command" /ve /t REG_SZ /d "\"%JAVA_HOME%\bin\javaw.exe\" -jar \"%%1\" %%*" /f
ECHO Finished creating .jar file association for executable .jar files.
PAUSE
GOTO EOF
:FAIL
ECHO Script failed. JAVA_HOME not defined.
PAUSE
于 2012-11-28T23:28:12.947 回答
0

好吧,一方面,他可能使用了错误的 JVM 命令行参数来运行 Java jar。其次,您在构建 jar 文件时可能没有正确定义主类(请参阅:无法为 jar 文件加载主类)。

你解决这个问题的方式?在我上面提供的链接中,您将看到一些可以提供给 JVM 的命令行参数,它们对 JVM 的运行方式产生了很大的影响。获取这些命令行参数并构建最终用户可以运行以正确初始化程序的批处理(或外壳)文件。

由于您的计算机设置不同,因此处理“.jar”类型文件的外壳扩展名也可能不同

于 2012-09-19T23:14:47.313 回答
0

尝试在他们的机器上安装最新版本的 java (JRE)(确保它与编译您的应用程序的版本相同或更高)并确保如果您使用不同的体系结构(x86 / x64),您拥有任何库的正确版本。我昨天才遇到此错误,因为我将 JDK 7u7 应用程序部署到具有 JRE 6u7 的机器上。

于 2012-09-19T23:24:35.413 回答
0
  1. 安装新的 JRE。
  2. 在运行 jar 时,请确保在他的命令中给出类路径。例如。java -cp asd -jar 文件.jar
于 2016-12-30T07:14:32.083 回答