簡體   English   中英

從Java執行命令時使用bash函數

[英]Use bash function when executing a command from java

我在.bashrc編寫了一個bash函數,該函數負責更新java jar文件並使用新的jar重新啟動應用程序,以作為自動更新機制。

我正在嘗試使用以下Java代碼段從我的Java代碼執行我的功能:

Runtime.getRuntime().exec(new String[] { "/bin/bash", "-c", "update-logbot" });

這將返回退出代碼127 ,表明它找不到該函數。

如何從Java應用程序執行此bash函數?

如果我的理解正確,那么您已經有一個bash腳本來關閉java / jar程序並刪除它,然后下載新的jar / java程序並執行它。

但是,您希望使用Java程序實現相同的目的。

為此,您需要一個bash腳本將新程序下載到與舊Java程序相同的文件夾中,並且jar名稱更改為該程序的下一個迭代版本。

在程序中使用下面的命令調用腳本

proc = Runtime.getRuntime()。exec(“ sh /home/***/Documents/script.sh”);

確認jar / java程序復制操作成功后,調用另一個腳本以啟動新的java / app(提供新程序的延遲啟動,以使新程序要等到舊版本退出后才能啟動)

在新的Java程序中,檢查是否存在較舊版本的程序,並執行腳本以通過Java程序將其刪除或刪除

您可能還需要模仿用戶權限(通過調用腳本來模仿用戶)才能實現此功能

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM