2013-05-10 163 views
3

我試圖讓我的一個命令行實用程序更友好一些。我的大多數同事並不介意使用該實用程序作爲CLI,但導航到它對他們來說是一種痛苦。我寧願不去每臺計算機,並在他們的CLI中設置一個快捷方式,所以:雙擊.jar文件在命令行中啓動它

有沒有辦法讓一個.jar文件啓動一個命令行工具進入命令提示符(最好PowerShell?)我試過搜索谷歌和堆棧溢出,但我很難取得進展...任何方向將不勝感激。

我以某種方式想象這使用Desktop,但我不知道如何工作。

回答

8

也許你需要做一個基於swing的控制檯來重定向輸出和輸入。以下是我在簡單網絡搜索中找到的鏈接。在這裏Swing-Console(我以前從未使用過這些)

而且一個開源項目。

編輯:

另一種選擇。如果您使用run-me.bat文件分發您的應用程序會怎麼樣?

@echo off 
java -jar my-console-app.jar 

您還可以更改標題。

+0

這當然是一種選擇,但我希望避免必須爲使CLI應用程序更容易實現的表達目的創建GUI。編寫一個新的控制檯重新創建每個人都已擁有的控制檯似乎是浪費時間。 – 2013-05-10 15:28:20

+1

@JayCarr增加了另一個選項。也許你會嘗試一下。 – 2013-05-10 15:42:16

+1

另一個很好的可能性。儘管在與我的同事交談後,似乎我將探索上面列出的第一個選項。誰知道CLI可能會如此嚇人?我想我們每天都會學到新的東西:)。 – 2013-05-13 12:34:53

0

您應該使用java.exe而不是javaw.exe重新關聯jar文件。 javaw是Java的非CLI版本,但是用java.exe啓動它應該可以做到。

這是如何做到這一點(前提是你有管理權限):

assoc .jar=jarfileterm 
ftype jarfileterm="PATH\TO\JRE\bin\java.exe" -jar "%1" %* 

當然,替換PATH \到\ JRE使用正確的路徑。 執行此操作後,雙擊.jar文件應打開一個CLI。

+1

我已經看到過這種方法,但我很猶豫,因爲它看起來像是要去我部門的每臺計算機上這樣做。也許我誤解了這是如何實現的? – 2013-05-10 15:27:00

+2

您也可以只包含一個.bat文件,該文件像這樣運行jar文件:'java -jar '。這將打開命令行窗口並執行jar文件,將輸出重定向到「終端」。 – Anickyan 2013-05-10 16:55:12

0

您至少有兩個選項。

製作一個可執行的jar文件。

Windows上的例子是這個樣子:

mkdir temp 
cd temp 

for %f in (..\dist\lib\*.jar) do @jar xf %f 

jar xf ..\dist\YourJar.jar 

jar cfe YourJar.jar com.something.Main *.* 

您可以在此處詳細瞭解它的jar歸檔工具:http://docs.oracle.com/javase/1.4.2/docs/tooldocs/windows/jar.html

這種情況很容易使用Maven了很多。請參閱Maven的樹蔭插件在這裏:https://maven.apache.org/plugins/maven-shade-plugin/

做一個Java Web Start應用

有關概述,看看這個: http://docs.oracle.com/javase/tutorial/deployment/webstart/

對於一個一步一步的指導,採取看看這個:http://docs.oracle.com/javase/7/docs/technotes/guides/javaws/developersguide/contents.html