日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長提供免費收錄網(wǎng)站服務(wù),提交前請做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

本文介紹了Java Runime.getRuntime().exec(Cmd)命令包含單引號的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)吧!

問題描述

我需要使用Java通過一個命令來同步多個文件
以下命令在外殼中運行良好
Rsync-avrz–Timeout=100 rsync://10.149.21.211:8730/‘logflow/click/file1日志流/單擊/文件2’/主頁/kerrycai/puler”

但當(dāng)我使用以下Java代碼時,它無法工作

String cmd = "rsync -avrz --timeout=100 rsync://10.149.21.211:8730/'logflow/click/file1 logflow/click/file2' /home/kerrycai/puller";
Process p = Runtime.getRuntime().exec(cmd);
int ret =  p.waitFor();

ret值不等于0(在我的測試中是5),命令執(zhí)行不成功,經(jīng)過調(diào)試,似乎是單引號引起的問題

所以,我的問題是

    我是否可以使用Java執(zhí)行包含單引號的外殼命令(請注意,單引號位于參數(shù)中間,而不是開始/結(jié)束)?
    我是否可以讓一個外殼命令在一個命令中rsync多個文件,并且該命令中沒有單(雙)引號?

推薦答案

@chris注意:在一個參數(shù)中組合多個文件名(真正修改的部分類似的文件名)確實非常不尋常,總體上對unix來說甚至是”可疑的”,但對于rsync是正確的(或者至少曾經(jīng)是正確的)。

前言:JavaRuntime.exec不‘執(zhí)行外殼命令’(除非您顯式運行外殼并給它一個命令);它運行帶有參數(shù)的程序。這些不同的東西經(jīng)常被混淆,因為普通用戶使用的大多數(shù)外殼命令都是運行程序的命令,但這是一個差異很重要的情況。特別是,將空格引用到外殼程序會導(dǎo)致外殼程序向包含該空格的程序傳遞單個參數(shù),而不是拆分成兩個(或更多)參數(shù),但引號本身不包括在參數(shù)中。

首先,您應(yīng)該查看高級用法下的手冊頁(在您的系統(tǒng)上或在線https://download.samba.org/pub/rsync/rsync.html)。Rsync的當(dāng)前(甚至是較舊的)版本有一種更方便的語法使用單獨的參數(shù)來獲取多個文件,Runtime.exec(String)使用的簡單解析可以處理這些文件:

rsync -avrz --timeout=100 --port=8730 10.149.21.211::logflow/click/file1 ::logflow/click/file2 /home/kerrycai/puller

但是,如果您需要(或確實想要)使用帶引號的形式,那么您需要自己進(jìn)行標(biāo)記化,并使用@EJP建議的String[]重載–盡管您仍然可以使用Runtime,但您不需要為此使用ProcessBuilder。具體地做一些類似的事情:

String[] cmdarray = {"rsync",
    "-avrz",
    "--timeout=100",
    "rsync://10.149.21.211:8730/logflow/click/file1 logfile/click/file2",
    // separated argument contains space but not single (or other) quote
    "/home/kerrycai/puller" };
... Runtime.getRuntime.exec(cmdarray); ...

這篇關(guān)于Java Runime.getRuntime().exec(Cmd)命令包含單引號的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,

分享到:
標(biāo)簽:Cmd getRuntime Java Runime 包含 單引號 命令
用戶無頭像

網(wǎng)友整理

注冊時間:

網(wǎng)站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨大挑戰(zhàn)2018-06-03

數(shù)獨一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學(xué)四六

運動步數(shù)有氧達(dá)人2018-06-03

記錄運動步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績評定2018-06-03

通用課目體育訓(xùn)練成績評定