簡體   English   中英

在Java程序中使用Http路徑執行Shell腳本

[英]Execute Shell Script using Http path in java program

我有一個路徑,其中有我必須使用Java程序執行的Shell腳本,但出現錯誤。

Runtime.java

public class Runtime {

    public static void main(String[] args) {

        System.out.println("Triggered");

        try {
            Process p = Runtime.getRuntime().exec("\"http://192.168.1.7/sh_scripts/check_process/2.sh\"");
            System.out.println(p);

                    } catch (IOException e) {

            e.printStackTrace();
        }

    }

}


LOGCAT

http://192.168.1.7/sh_scripts/check_process/2.sh: CreateProcess error=2, The system cannot find the file specified
    at java.lang.ProcessBuilder.start(Unknown Source)
    at java.lang.Runtime.exec(Unknown Source)
    at java.lang.Runtime.exec(Unknown Source)
    at java.lang.Runtime.exec(Unknown Source)
    at com.howtodoinjava.demo.poi.Runtiime.main(Runtiime.java:15)
Caused by: java.io.IOException: CreateProcess error=2, The system cannot find the file specified
    at java.lang.ProcessImpl.create(Native Method)
    at java.lang.ProcessImpl.<init>(Unknown Source)
    at java.lang.ProcessImpl.start(Unknown Source)
    ... 5 more

我在執行過程中沒有想念任何東西嗎? 從Java程序讀取的路徑不是geeting以執行Shell腳本,所以請幫助我使用給定的http鏈接執行jar文件,在這里我可以使用Java成功執行2.sh文件

據我所知,您只能在同一台計算機上執行一個可執行文件,不支持從http,ftp或其他遠程服務器上下載腳本。

在普通的unix shell中也是如此。

因此,您有幾種選擇:

  1. 自己在Java中下載.sh文件,將其放在一個臨時文件中,然后在其中執行
  2. 運行另一個.sh文件,該文件從http下載.sh文件並執行; 可以是一個單行,例如source <(curl -s http://192.168.1.7/sh_scripts/check_process/2.sh)
  3. 嘗試執行此oneliner,也許使用ProcessBuilder可以簡化重定向等的創建過程。但是我不確定。

暫無
暫無

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

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