2012-09-19 51 views
0

好吧,我做了一个可执行的jar包,通过一个应用程序运行测试游戏。它对我来说运行得很好,但对于我的朋友来说却没有。它说它无法找到主要的类。那么他是否必须安装java jdk或其他?有没有解决的办法?可执行的jar

回答

0

那么,他可能会使用错误的命令行参数到JVM来运行Java jar。其次,在构建jar文件时,您可能没有正确定义主类(请参阅:Unable to load main-class for jar file)。

你怎么解决这个问题?在上面提供的链接中,您会看到有几个可以提供给JVM的命令行参数,这些参数对JVM的运行方式有很大的影响。采取这些命令行参数并建立一个批处理(或shell)文件,最终用户可以运行该文件来正确初始化程序。

当您的计算机是不同的设置,那么可能是外壳扩展,处理类型的文件“的.jar”

0

尝试他们的机器上安装最新版本的Java(JRE)(确保它是平等的或更高的版本),并确保如果您使用的是不同的体系结构(x86/x64),则您拥有任何库的正确版本。我昨天只有这个错误,因为我将JDK 7u7应用程序部署到了JRE 6u7的机器上。

+0

这可能是它让我尝试的。 – user1600202

+0

是的,这是他仍然运行java 1.6的问题谢谢! – user1600202

+0

没问题,如果它帮助你,你能标记它是正确的答案吗? – feldoh

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 
0
  1. 安装新的JRE。
  2. 运行该jar时确保你得到他命令中的类路径。例如, java -cp asd -jar file.jar