无法使用java的Runtime.getRuntime()隐藏文件夹.exec()

时间:2011-10-05 00:41:49

标签: java runtime.exec

if(!dataFolder.isHidden())
          if(System.getProperty("os.name").toLowerCase()
                              .indexOf("windows") > -1){
             String command = "attrib +h -r -s " + dataFolder.getAbsolutePath();
             Runtime.getRuntime().exec(command);
             System.out.println(command);
          }

我正在运行上面的代码,我无法让它运行起来。我想隐藏“.data”文件夹,而不是只读而不是系统文件夹,但它创建为可见且只读。

这是System.out.println行的输出:

attrib +h -r -s D:\eclipse\bin\.data

我也无法使用该过程的exitValue()方法,因为它总是抱怨:

java.lang.IllegalThreadStateException: process has not exited

我做错了什么?

1 个答案:

答案 0 :(得分:2)

您应该先调用Process.waitFor()方法。此方法将阻止,直到attrib进程退出。在完成之前,进程不会有退出代码。