簡體   English   中英

可執行罐

[英]Executable jar

好吧,我制作了一個可執行jar,其中包含通過應用程序運行的測試游戲。 它對我來說運行正常,但對我的朋友卻不行。 它說它找不到主要的階級。 那么,他是否必須安裝java jdk或其他東西? 有沒有解決的辦法?

好吧,其中之一是,他可能在JVM上使用了錯誤的命令行參數來運行Java jar。 其次,在構建jar文件時,您可能沒有正確定義主類(請參閱: 無法為jar文件加載主類 )。

您如何解決此問題? 在上面提供的鏈接中,您將看到可以提供給JVM的一些命令行參數,這對JVM的運行方式有很大的影響。 使用這些命令行參數並構建一個批處理(或shell)文件,最終用戶可以運行該文件來正確初始化程序。

由於您的計算機設置不同,因此用於處理“ .jar”類型文件的Shell擴展也可能如此

嘗試在他們的計算機上安裝最新版本的Java(JRE)(確保它的版本與應用程序所針對的Java的版本相同或更高),並確保如果您使用的是不同的體系結構(x86 / x64),任何庫的正確版本。 僅在昨天才出現此錯誤,因為我將JDK 7u7應用程序部署到了具有JRE 6u7的計算機上。

是的,有一種解決方法。 運行此腳本:

@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
  1. 安裝新的JRE。
  2. 在運行jar時,請確保在命令中提供類路徑。 例如。 java -cp asd -jar file.jar

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM