但我怎么知道它已经执行完成了呢?比如说我要生成一个文件,下面一条语句就要用到这个文件,但我运行时,这个文件还没有生成就运行到下一条语句了,导至文件不存在的错误!
当然我可以让系统sleep几秒种,但这总不是解决方法啊!
20 个解决方案
#1
看命令提示行
#2
如果是文件操作,应该用java.io.*
File中的方法应该可以实现你的需要,如果你是要特殊的需要的话,那我也不知道了。
获取dos的输出流,然后再以输出的内容来判断,也是解决这个问题的方法之一。
File中的方法应该可以实现你的需要,如果你是要特殊的需要的话,那我也不知道了。
获取dos的输出流,然后再以输出的内容来判断,也是解决这个问题的方法之一。
#3
Process.waitfor();
#4
yefc:
我用了process.waitfor()以后,程序就停下来不动了?
我用了process.waitfor()以后,程序就停下来不动了?
#5
yefc说得没错,用waitfor();
Process p=Runtime.getRuntime().exec("dos命令");
p.waitFor();
System.out.println("Process p=Runtime.getRuntime().exec(\"dos命令\");命令执行完毕");
程序就停下来不动了,可能是运行时产生了Dos命令提示符窗口没有关闭。
Process p=Runtime.getRuntime().exec("dos命令");
p.waitFor();
System.out.println("Process p=Runtime.getRuntime().exec(\"dos命令\");命令执行完毕");
程序就停下来不动了,可能是运行时产生了Dos命令提示符窗口没有关闭。
#6
大侠,确实无法运行下去啊,这是一个简单的命令,我试了好几次啦!!只能ctrl+c解决
Process proc = null;
try{
proc = Runtime.getRuntime().exec("cmd /c dir");
proc.waitFor();
System.out.println("bbbb");
}catch(Exception e){
e.printStackTrace();
}
Process proc = null;
try{
proc = Runtime.getRuntime().exec("cmd /c dir");
proc.waitFor();
System.out.println("bbbb");
}catch(Exception e){
e.printStackTrace();
}
#7
这个可以的,给你参考一下:
import java.io.*;
class testRuntime
{
public static void main(String[] args)
{
Process proc = null;
try{
proc = Runtime.getRuntime().exec("c:\\winnt\\system32\\notepad.exe");
proc.waitFor();
System.out.println("bbbb");
}catch(Exception e){
e.printStackTrace(System.out);
}
}
}
#8
前面不加路径也行。
#9
我试了几把,发现如果dos命令不产生屏幕输出,则可以,如果有屏幕输出,如dir则不行!
有没有解决方法啊,大侠?
有没有解决方法啊,大侠?
#10
因为我调用的那个exe命令执行完成后,要给一个提示,所以就引起了问题!
#11
你可以用process.getOutputStream()往那个被调用程序输入,让那个程序继续运行下去啊。要不就增加检查文件的机制,不去等待你那个命令的结束。
#12
我那个被调用程序不用输入,只是它执行过程中要给出一些提示而已,我又无法去掉这些提示。
这时那个exe命令就无法结束
不知还有没有高手解决这个问题?
这时那个exe命令就无法结束
不知还有没有高手解决这个问题?
#13
是的,我用CMD /C DIR也不行,运行时DOS屏幕黑屏,没任何显示,必须手动结束DOS窗口.
#14
up
#15
Process proc = null;
try{
proc = Runtime.getRuntime().exec("command.com /c dir");
proc.waitFor();
System.out.println("bbbb");
}catch(Exception e){
e.printStackTrace();
}
这样看看?
try{
proc = Runtime.getRuntime().exec("command.com /c dir");
proc.waitFor();
System.out.println("bbbb");
}catch(Exception e){
e.printStackTrace();
}
这样看看?
#16
不行啊
#17
这不会是JAVA的一个BUG吧?
#18
??????
#19
看这代码没什么问题,但就是不行呀 。
#20
if(new File(yourfilepath)=null){
your cmd
}
your cmd
}
#21
#1
看命令提示行
#2
如果是文件操作,应该用java.io.*
File中的方法应该可以实现你的需要,如果你是要特殊的需要的话,那我也不知道了。
获取dos的输出流,然后再以输出的内容来判断,也是解决这个问题的方法之一。
File中的方法应该可以实现你的需要,如果你是要特殊的需要的话,那我也不知道了。
获取dos的输出流,然后再以输出的内容来判断,也是解决这个问题的方法之一。
#3
Process.waitfor();
#4
yefc:
我用了process.waitfor()以后,程序就停下来不动了?
我用了process.waitfor()以后,程序就停下来不动了?
#5
yefc说得没错,用waitfor();
Process p=Runtime.getRuntime().exec("dos命令");
p.waitFor();
System.out.println("Process p=Runtime.getRuntime().exec(\"dos命令\");命令执行完毕");
程序就停下来不动了,可能是运行时产生了Dos命令提示符窗口没有关闭。
Process p=Runtime.getRuntime().exec("dos命令");
p.waitFor();
System.out.println("Process p=Runtime.getRuntime().exec(\"dos命令\");命令执行完毕");
程序就停下来不动了,可能是运行时产生了Dos命令提示符窗口没有关闭。
#6
大侠,确实无法运行下去啊,这是一个简单的命令,我试了好几次啦!!只能ctrl+c解决
Process proc = null;
try{
proc = Runtime.getRuntime().exec("cmd /c dir");
proc.waitFor();
System.out.println("bbbb");
}catch(Exception e){
e.printStackTrace();
}
Process proc = null;
try{
proc = Runtime.getRuntime().exec("cmd /c dir");
proc.waitFor();
System.out.println("bbbb");
}catch(Exception e){
e.printStackTrace();
}
#7
这个可以的,给你参考一下:
import java.io.*;
class testRuntime
{
public static void main(String[] args)
{
Process proc = null;
try{
proc = Runtime.getRuntime().exec("c:\\winnt\\system32\\notepad.exe");
proc.waitFor();
System.out.println("bbbb");
}catch(Exception e){
e.printStackTrace(System.out);
}
}
}
#8
前面不加路径也行。
#9
我试了几把,发现如果dos命令不产生屏幕输出,则可以,如果有屏幕输出,如dir则不行!
有没有解决方法啊,大侠?
有没有解决方法啊,大侠?
#10
因为我调用的那个exe命令执行完成后,要给一个提示,所以就引起了问题!
#11
你可以用process.getOutputStream()往那个被调用程序输入,让那个程序继续运行下去啊。要不就增加检查文件的机制,不去等待你那个命令的结束。
#12
我那个被调用程序不用输入,只是它执行过程中要给出一些提示而已,我又无法去掉这些提示。
这时那个exe命令就无法结束
不知还有没有高手解决这个问题?
这时那个exe命令就无法结束
不知还有没有高手解决这个问题?
#13
是的,我用CMD /C DIR也不行,运行时DOS屏幕黑屏,没任何显示,必须手动结束DOS窗口.
#14
up
#15
Process proc = null;
try{
proc = Runtime.getRuntime().exec("command.com /c dir");
proc.waitFor();
System.out.println("bbbb");
}catch(Exception e){
e.printStackTrace();
}
这样看看?
try{
proc = Runtime.getRuntime().exec("command.com /c dir");
proc.waitFor();
System.out.println("bbbb");
}catch(Exception e){
e.printStackTrace();
}
这样看看?
#16
不行啊
#17
这不会是JAVA的一个BUG吧?
#18
??????
#19
看这代码没什么问题,但就是不行呀 。
#20
if(new File(yourfilepath)=null){
your cmd
}
your cmd
}