如果我正在編寫HelloWorld,是否有辦法通過輸入HelloWorld從任何目錄運行程序?一旦你設置了Ant,就可以以同樣的方式進行排序,你可以從任何目錄運行Ant?您可以在Linux中使用名稱而不使用「java」命令來運行Java程序嗎?
只是爲了一些細節,我們要創建一個基於CLI工具包的客戶,而只是好奇,如果我們可以編譯它,安裝它,只是他們使用的工具包名稱運行它。
如果我正在編寫HelloWorld,是否有辦法通過輸入HelloWorld從任何目錄運行程序?一旦你設置了Ant,就可以以同樣的方式進行排序,你可以從任何目錄運行Ant?您可以在Linux中使用名稱而不使用「java」命令來運行Java程序嗎?
只是爲了一些細節,我們要創建一個基於CLI工具包的客戶,而只是好奇,如果我們可以編譯它,安裝它,只是他們使用的工具包名稱運行它。
您可以隨時創建一個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]"
。
在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
,而你的客戶可能需要一些系統管理員技能來啓用它)。
注意,這個答案適用於Linux和唯一的其他Posix的操作系統。 Windows將要求您創建一個批處理文件。 – RudolphEst 2013-02-27 14:25:46
使shell腳本檢查它所在的目錄並將其用作jar文件的路徑可能更好。這樣shell腳本和.jar文件就可以被複制到任何目錄中。 – 2013-02-27 14:26:20
@RudolphEst:沒錯,但問題是關於Linux的問題。 – NPE 2013-02-27 14:26:22