2014-10-20 97 views
2

我使用IntelliJ創建JAR文件,並且它在從命令行運行時正常執行,但雙擊它時不會發生任何事情。我從eclipse導出的JAR正常工作,並且由於我是使用IntelliJ的初學者,我的猜測是我做錯了什麼。Jar不是從雙擊開始,而是從命令行開始

我出口的JAR這樣:

Project structure -> jar -> from modules and dependencies then use this 
    configuration to build. 
+0

雙擊jar是什麼意思? jar文件不是可執行文件,它只是一個包含編譯代碼的框。 – 2014-10-20 18:42:20

+0

是的,但日食可以導出可運行的罐子,你可以點擊它和exe文件一樣工作 – user1126068 2014-10-20 18:44:42

+0

如何從命令行啓動它? – Henry 2014-10-20 18:45:22

回答

1

不知道爲什麼每個人都在玩弄自動執行罐子。 只需添加一個MANIFEST.MF文件,並指定完全限定主類作爲主類:my.package.MyClass

此外,請確保您的可執行文件類型的.jar文件類型的Java

一旦你這樣做這你可以雙擊jar來執行它。

+0

該jar文件已經包含以下內容:'Manifest-Version:1.0 Class-Path:。 Main-Class:entry.Main',這就是爲什麼我不明白爲什麼它沒有執行。 – user1126068 2014-10-20 19:34:57

+0

這可能是因爲您需要將jar類型與Java關聯。 – 2014-10-20 21:17:47

+0

他們工作得很好,如果他們已經通過eclipse導出,他們不工作,只有通過IntelliJ導出 – user1126068 2014-10-20 21:19:30

0

的IntelliJ不會爲你執行一個JAR。記住JAR是一個容器,就像你要求執行一個ZIP文件一樣。

我相信你想要的是在你的jar文件中執行一個類。這將是它具有類:

public static void main(String[] args) { ... } 

你有兩個選擇:

1)執行命令行

2)在「主」字,我寫了上面點擊右鍵罐子然後按下RUN鍵。您將看到一個小綠色箭頭(播放按鈕)。這是Intellij內部運行類的唯一方法。

希望它可以幫助

+0

我不需要IntelliJ爲我執行一個jar,我想知道如何創建可執行的jar。 – user1126068 2014-10-20 19:21:02

+0

哦,好的。那麼,你使用的是Maven還是類似的?如果沒有,你可以看到如何在這個鏈接中創建和創建自己的jar。希望它有助於:)博客.jetbrains.com/idea/2010/08/quickly-create-jar-artifact – 2014-10-20 19:23:10

+0

我不使用maven,我的jar出口很好,並從命令行工作,但沒有將它產生的日食它雙擊不啓動。 – user1126068 2014-10-20 19:27:17

0

如果你的JAR使用jar -jar <file>命令行啓動,這是爲可執行的JAR文件獲取(換句話說,元數據指定了主要類)。你可以使用OS提供的工具來指定當你雙擊一個.jar文件時,它應該執行java -jar <file>,但這超出了JAR文件的範圍。例如,如果您正在運行Windows,則應按照here所述的步驟完成此操作。同樣,這是操作系統特定的,甚至可能會針對您正在運行的版本,並且本質上只是雙擊事件執行java -jar命令的花哨包裝。

+0

eclipse如何管理它?使用eclipse導出的同一個項目在雙擊時工作... – user1126068 2014-10-20 19:27:43

+0

任何給定的軟件都可以很容易地專門重寫雙擊的功能。它所需要做的就是在後臺無聲運行'java -jar '。我從你提出的問題的方式中接受了它,你希望雙擊工作在任何地方,而不僅僅是在IntelliJ中。我知道你可以在IntelliJ中使用的唯一方法是定義一個外部工具(根據我所知,它不會像雙擊那樣工作,而是在文件的右鍵單擊菜單中) 。 – Thor84no 2014-10-21 11:06:59

相關問題