第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

從 Java 調(diào)用的 Perl 腳本沒(méi)有輸出

從 Java 調(diào)用的 Perl 腳本沒(méi)有輸出

陪伴而非守候 2023-06-08 17:36:30
我在 Java 中使用 Ganymed ssh lib 連接到 Linux 機(jī)器并執(zhí)行一些 unix 腳本,并顯示它們的輸出。我正在運(yùn)行一個(gè)父 shell 腳本,該腳本依次運(yùn)行其他幾個(gè)子腳本,最后運(yùn)行一個(gè) perl 腳本。一切都適用于 shell 腳本,但是當(dāng)它到達(dá) perl 腳本時(shí),我停止獲得任何輸出。如果我在 Linux 服務(wù)器上手動(dòng)運(yùn)行父腳本,我會(huì)看到 perl 的輸出沒(méi)有問(wèn)題。這是相關(guān)的 java 代碼,連接到機(jī)器并調(diào)用 shell 腳本,并返回一個(gè) BufferedReader,從那里可以逐行讀取輸出:try {            conn = new Connection(server);            conn.connect();            boolean isAuthenticated = conn.authenticateWithPublicKey(user, keyfile, keyfilePass);            if (isAuthenticated == false) {                throw new IOException("Authentication failed.");            }            sess = conn.openSession();            if (param == null) {                sess.execCommand(". ./.bash_profile; cd $APP_HOME; ./parent_script.sh");            }            else {...}            InputStream stdout = new StreamGobbler(sess.getStdout());            reader = new BufferedReader(new InputStreamReader(stdout));        } catch (IOException e) {            e.printStackTrace();        }我調(diào)用的父 shell 腳本如下所示:./start1  #script1 output OK./start2  #script2 output OK./start3  #script3 output OK/u01/app/perl_script.pl # NO OUTPUT HERE :(誰(shuí)知道為什么會(huì)這樣?
查看完整描述

1 回答

?
蠱毒傳說(shuō)

TA貢獻(xiàn)1895條經(jīng)驗(yàn) 獲得超3個(gè)贊

產(chǎn)生輸出的 Perl 代碼部分是:


warn Dumper { stdout => $stdout,

? ? ? ? ? ? ? stderr => $stderr,

? ? ? ? ? ? ? status => $status };

發(fā)出警告,通常通過(guò)將其打印到STDERR


但是您的 Java 程序正在從STDOUT.


InputStream stdout = new StreamGobbler(sess.getStdout());

你有幾個(gè)選擇。


更改您的 Perl 代碼以將輸出發(fā)送到STDOUT而不是STDERR. 這可能很簡(jiǎn)單,只需更改warn()為print().

在 shell 腳本中調(diào)用 Perl 程序時(shí),重定向STDERR到STDOUT.


/u01/app/perl_script.pl 2>&1

我猜你也可以設(shè)置你的 Java 程序來(lái)讀取STDERR。但我不是 Java 程序員,所以我無(wú)法就最好的方法向您提供建議。


查看完整回答
反對(duì) 回復(fù) 2023-06-08
  • 1 回答
  • 0 關(guān)注
  • 194 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)