2012-09-19 53 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