2013-02-27 41 views
1

如果我正在編寫HelloWorld,是否有辦法通過輸入HelloWorld從任何目錄運行程序?一旦你設置了Ant,就可以以同樣的方式進行排序,你可以從任何目錄運行Ant?您可以在Linux中使用名稱而不使用「java」命令來運行Java程序嗎?

只是爲了一些細節,我們要創建一個基於CLI工具包的客戶,而只是好奇,如果我們可以編譯它,安裝它,只是他們使用的工具包名稱運行它。

回答

8

您可以隨時創建一個shell腳本,將其命名爲HelloWorld並使其與您的JAR運行java

然後,您需要chmod該腳本使其可執行,並將其放置在您的$PATH的某處。

腳本想是這樣的:根據您的具體要求

#!/bin/bash 
cd /path/to/helloworld 
java -jar HelloWorld.jar "[email protected]" 

#!/bin/bash 
java -jar /path/to/helloworld/HelloWorld.jar "[email protected]" 

+0

注意,這個答案適用於Linux和唯一的其他Posix的操作系統。 Windows將要求您創建一個批處理文件。 – RudolphEst 2013-02-27 14:25:46

+0

使shell腳本檢查它所在的目錄並將其用作jar文件的路徑可能更好。這樣shell腳本和.jar文件就可以被複制到任何目錄中。 – 2013-02-27 14:26:20

+1

@RudolphEst:沒錯,但問題是關於Linux的問題。 – NPE 2013-02-27 14:26:22

2

您的問題常用的解決方法是創建一個單獨的啓動應用程序,這是一個運行Java程序的非Java應用程序。啓動器可以用一些可編譯的語言編寫,例如C/C++並編譯爲本機可執行文件。也可以用Unix shell,perl,python等一些解釋語言編寫,並通過在啓動文件的開始處添加#!/path/to/interpreter行並在其上設置可執行標誌使其可執行。還有幾個實用程序可以爲您的程序生成啓動程序,如launch4jjsmooth

0

在Linux(特別),你可以使用/proc文件系統(見proc(5)手冊頁)及其binfmt_misc(實際上是/proc/sys/fs/binfmt_misc/register僞文件和其他pseudofiles /proc/sys/fs/binfmt_misc/下)註冊java的處理程序.class.jar文件。閱讀內核源代碼中的Documentation/binfmt_misc.txt文件以獲取更多細節。

那麼任何可執行文件.jar將被java(或jexec)解釋

我不知道它是值得的。我發現用一些shell腳本封裝你的Java程序要容易得多(而且更便於攜帶,因爲很少有Linux系統實際使用binfmt_misc,而你的客戶可能需要一些系統管理員技能來啓用它)。

相關問題