好吧,我制作了一个可执行的jar,它通过一个应用程序运行测试游戏。它适合我,但对我的朋友,它没有。它说无法找到主类。那么他必须安装java jdk或其他东西吗?有办法解决这个问题吗?
答案 0 :(得分:0)
嗯,首先,他可能使用错误的命令行参数来运行Java jar。其次,在构建jar文件时,您可能没有正确定义主类(请参阅:Unable to load main-class for jar file)。
你解决这个问题的方式?在上面提供的链接中,您将看到可以提供给JVM的一些命令行参数,这些参数对JVM的运行方式产生重大影响。获取这些命令行参数并构建一个批处理(或shell)文件,最终用户可以运行该文件以正确初始化程序。
由于您的计算机设置不同,因此可能是处理“.jar”类型文件的shell扩展程序
答案 1 :(得分:0)
尝试在他们的计算机上安装最新版本的Java(JRE)(确保它的版本与编译应用程序的版本相同或更高)并确保如果您使用的是不同的体系结构(x86 / x64)你有任何库的正确版本。我昨天才遇到这个错误,因为我将一台JDK 7u7应用程序部署到一台JRE 6u7的机器上。
答案 2 :(得分: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
答案 3 :(得分:0)