我正試圖從一個Java進程中檢查一個文件是否存在於Unix中。如何在Unix上檢查文件是否存在並可執行於Java?
我正在努力與Runtime.getRuntime().exec()
我試圖運行的命令是test -x $VAR/path/to/file
,請注意路徑中的Unix變量。
該命令返回0或1,但我不知道如何從Java內部獲取該指示。
什麼我目前做的是:
String cmd = "test -x $VAR/filename";
Process proc = Runtime.getRuntime().exec(cmd);
int exitCode = proc.waitFor();
我還可以添加;echo $?
的命令,該命令將打印0/1值,但我不知道怎麼弄的輸出命令。
的'File.exists()'和'System.getenv()A組合'應達到目的,而不需要的外部過程。你的獎金是這個解決方案也是平臺無關的。 – biziclop
進程類也有兩種獲取輸出的方法:[Process.getOutputStream()](http://docs.oracle.com/javase/7/docs/api/java/lang/Process.html#getOutputStream%28%29 )和[Process.getErrorStream()](http://docs.oracle.com/javase/7/docs/api/java/lang/Process.html#getErrorStream%28%29) – olexd