簡體   English   中英

我怎么能告訴Java代碼運行腳本,因為它是從普通用戶的命令行運行的?

[英]How can i tell Java code run the script as it was running from command line as normal user?

當我手動運行此腳本時,瀏覽器chrome在一個選項卡中打開網站(這完全是我需要的完美)

但是當我使用Java示例代碼運行相同的腳本10次時,它會打開瀏覽器但是10次相同的頁面10 TAB。

問:如何告訴Java代碼請運行它,因為它假設是在運行手動執行(因此我只有1個TAB?)?

BASH: /var/tmp/runme.sh(運行了1次,仍然總是有1個標簽符合預期)

export DISPLAY=:0.0
ps aux | grep chromium-browser | awk '{ print $2 }' | xargs kill -9;
sleep 8;
chromium-browser --process-per-site --no-discard-tabs --ash-disable-tab-scrubbing -disable-translate "http://www.oracle.com" &

Java:啟動該腳本的10倍

  system("/var/tmp/runme.sh &");

  public static String system(String cmds) {
    String value = "";
    try {
      String cmd[] = { "/bin/sh", "-c", cmds};
      Process p = Runtime.getRuntime().exec(cmd);
      p.waitFor();
      BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
      String line = reader.readLine();
      while (line != null) {
        value += line + "\n\r";
        line = reader.readLine();
      }
    } 
    catch (IOException ioe) {
      ioe.printStackTrace();
    } 
    catch (InterruptedException ie) {
      ie.printStackTrace();
    }
    return value;
  }

拳頭刪除從這個線system("/var/tmp/runme.sh &");

第二,也許從那以后,你正在使用這個: “/ bin / sh” ,每次使用Runtime調用時,Java都會將腳本作為不同的shell運行?

並且您每次都從同一個shell執行/var/tmp/runme.sh

注意:/ bin / sh是一個解釋器,使用Java Runtime,您每次都要調用它的多個實例來執行腳本。

有時會使用Java。 它解決了。

1(在殺死java之前殺死chrome瀏覽器

2(殺死chrome瀏覽器后再啟動java應用程序

3(現在標簽為1,瀏覽器為1

之前:(錯)

export DISPLAY=:0.0
pkill java;
java -cp SystemV.jar Main.Start "boot chromium now with 1 tab and 1 browser" &
ps aux | grep chromium-browser | awk '{ print $2 }' | xargs kill -9;
chromium-browser --process-per-site --no-discard-tabs --ash-disable-tab-scrubbing -disable-translate "http://www.oracle.com" &

后:

export DISPLAY=:0.0
ps aux | grep chromium-browser | awk '{ print $2 }' | xargs kill -9;
chromium-browser --process-per-site --no-discard-tabs --ash-disable-tab-scrubbing -disable-translate "http://www.oracle.com" &
pkill java;
java -cp SystemV.jar Main.Start "boot chromium now with 1 tab and 1 browser" &
echo "it works now"

暫無
暫無

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

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