amtoaer

晓风残月

叹息似的渺茫,你仍要保存着那真!
github
x
telegram
steam
nintendo switch
email

讓.jar程式「可執行」

最近用java寫了一個命令行版小牛翻譯,通過maven構建生成.jar文件。但眾所周知,.jar程序不能直接運行,而是需要使用JVM解釋:

java -jar filename.jar ...arguments

這導致其使用體驗並不友好。那有沒有什麼方法讓.jar程序 “可執行”(不用帶上java -jar)的方法呢?我去查了查,發現是有的。

內容主要參考自這篇文章

Linux下可執行的程序有兩種,二進制程序和腳本文件。前者是機器碼,可以直接運行,後者則需要一個解釋器,通過解釋器對代碼解釋執行。在腳本文件中,可以通過在文件頭加入hashbang指定解釋器,這樣在執行腳本文件時,系統會使用hashbang中指定的解釋器解釋腳本內容。

python為例:正常情況下,我們需要通過python filename.py來執行程序,而如果在filename.py首行加入#!/usr/bin/python並給予其可執行權限,它便可直接通過./filename.py執行。

回到java.jar文件本身是字節碼的集合,java -jar表明需要用JVM去解釋它。因此其實我們的處理方法和python類似:

  1. 新建文件,在其開頭寫入hashbang

    touch a
    echo "#!/usr/bin/java -jar" > a
    
  2. 將需要解釋的內容(整個.jar文件)追加到文件後

    cat /path/to/.jar >> a
    
  3. 給予該文件可執行權限

    chmod +x ./a
    

之後就可以將其作為普通的可執行文件使用啦!

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。