1
我想将元数据附加到Unix文件系统中的文件。 attr命令让我这样做,但 命令语法要求附加变量的路径为双重qoutes。从Java程序使用attr linux命令
attr -s outpipe0 "/mnt/FUse/FileB" FileA
如何使用System.Runtime.exec在Java中运行上面的命令。当我尝试使用字符串数组参数运行时,我必须给出上述“/ mnt/FUse/FileB”,它在java程序中导致问题,因为它将双引号视为java中字符串的结尾。我基本上想发送一个字符串参数,它本身有双引号。
有人可以提出解决办法。
感谢
微不足道的解决方法:编写一个Un * x外壳脚本,负责正确调用* attr *命令并从Java调用该脚本(而不是直接调用* attr *)。我还强烈建议将任何shell脚本输出重定向到*/dev/null *或临时文件,而不是尝试解析Java中的所有输出。我还建议从外部shell进程中分叉,然后* kill -9 *由Java创建的shell进程。不要让Java **有任何**机会来与您的shell进程“发挥智能”。哦,总是从派生的Java线程中调用外部进程。 – SyntaxT3rr0r 2011-06-05 22:31:24
也从来没有*使用任何其他的* Runtime.exec *方法调用采取* String [] *。永远不要希望使用常规的String方法调用,并让Java正确地分割你的字符串。在执行外部过程之前自行分解您的论点。 – SyntaxT3rr0r 2011-06-05 22:35:56