草庐IT

Wait-Process

全部标签

Java ProcessBuilder process.destroy() 不杀死 winXP 中的子进程

我有一个java应用程序,它使用ProcessBuilder来准备操作系统命令并给我一个Process对象。(实际的操作系统命令是使用cygwin通过ssh进行rsync)。这在Windows中运行良好,但是如果我想使用process.destroy()停止进程,它不会终止子ssh和rsync进程.....我必须使用Windows任务管理器手动杀死它们..在我调用destroy();之前,是否可以获取进程的OutputStream并以某种方式发送ctrl-c?如果有人对解决方法有任何想法,那就太好了。谢谢, 最佳答案 我还认为模拟C

java - 为什么 Object.wait() 是最终的?

在Java中,Object的wait()方法被实现为final方法的原因是什么?不需要覆盖wait()吗? 最佳答案 Java语言规范描述了同步的工作原理。在众多概念中,如对象监视器,还有WaitSets的概念。.Everyobject,inadditiontohavinganassociatedmonitor,hasanassociatedwaitset.Awaitsetisasetofthreads.Whenanobjectisfirstcreated,itswaitsetisempty.Elementaryactionstha

java - 我可以使用 wait 而不是 sleep 吗?

这个问题在这里已经有了答案:Differencebetween"wait()"vs"sleep()"inJava(33个答案)关闭6年前。我遇到了一个发帖者试图让线程等待一秒钟的问题。他们正在使用wait,但在synchronizedblock之外,因此它崩溃了。给定一个正在运行的线程,要暂停给定时间的执行,可以这样做:Thread.sleep(1000);这应该也有效,并且结果非常相似:synchronized(this){this.wait(1000);}使用wait超时,线程将在1秒后取消暂停。问题是这样的:如果我没有任何监控和通知问题,是否有实际理由使用一个而不是另一个?

java - 如果 wait() 抛出 InterruptedException,线程是否等待直到它获取对象的监视器?

例如:publicsynchronizedObjectget(){while(result==null){try{wait();}catch(InterruptedExceptione){e.printStackTrace();//Doweownthemonitorofthisobject?}}returnresult;}当e.printStackTrace()执行时,我们是否保证拥有对象的监视器?引用资料说,当wait()在notify()或notifyAll()调用后返回时,线程会等待直到它获得对象的监视器。但是如果wait()抛出异常呢? 最佳答案

java - ProcessBuilder和Process.waitFor(),它等了多久?

我正在使用ProcessBuilder从java执行一个.exe文件类和Process类(class)。解释我在做什么:builder=newProcessBuilder(commands);builder.redirectErrorStream(true);Processprocess=builder.start();process.waitFor();我只是想知道,“waitFor()”要等多久?是等到我的.exe执行完毕,还是等到它执行完毕?我的.exe是编译好的AutoIt脚本。这意味着,可能会有像鼠标移动这样的交互,这需要一些时间。所以我需要知道我的Java代码在调用.exe

java - 是否可以有一个 "in-process"Tomcat 实例,用于测试目的?

我有一个基于Maven的Web应用程序项目,它生成一个要在Tomcat中运行的WAR。让我们假设,为了论证,该项目的单元测试通过网络实际发送/接收请求(而不是简单地使用模拟请求调用servlet方法)至关重要。有什么方法可以让我的测试工具在同一个JVM中运行Tomcat实例,加载当前项目,并让测试用例在localhost上命中它?如果做不到这一点,我实际上如何以编程方式将当前项目(以及依赖项)打包到WAR中,以便我可以使用Cargo以编程方式将其上传到其他Tomcat实例?有没有比直接使用mvn更好的选择?我知道我的要求不寻常,单元测试应该更加独立等等,但请让我们一起玩吧:)

Java:如何区分wait()中的虚假唤醒和超时

这是一个线程正在等待notify()或超时的情况。这里添加了一个while循环来处理虚假唤醒。booleandosleep=true;while(dosleep){try{wait(2000);/***Writesomecodeheresothat*ifitisspuriouswakeup,gobackandsleep.*orifitistimeout,getoutoftheloop.*/}catch(InterruptedExceptione){e.printStackTrace();}}在这种情况下,我如何区分虚假唤醒和超时?如果是虚假唤醒,我需要回去等待。如果超时,我需要跳出循环

java - Process Builder waitFor() 问题和打开文件限制

我继承了一些代码:Processp=newProcessBuilder("/bin/chmod","777",path).start();p.waitFor();基本上,将键/值对作为文件存储在磁盘上是出于一些古老且高度基于巫术的原因。我真的不想深入。但是,我留下了一堆IO异常:Exception:Cannotrunprogram"/bin/chmod":java.io.IOException:error=24,ToomanyopenfilesMessage:Cannotrunprogram"/bin/chmod":java.io.IOException:error=24,Tooman

java - Java中Process类的用途是什么?

RuntimeobjRuntime=Runtime.getRuntime();StringstrBackupString="mysqldump-u"+userName+"-p"+password+""+dbName;ProcessobjProcess=objRuntime.exec(strBackupString);这用于数据库的备份。但到底发生了什么?任何人都可以让我解释一下,Runtime和Process类的目的是什么?这个类是用来表现我们在命令提示符下输入命令的吗?那么如果我想打开记事本,我应该传递什么给objRuntime.exec()呢?我们一调用exec方法,命令就执行了吗

java - Selenium WebDriver : wait for element to be present when locating with WebDriver. findElement 是不可能的

使用WebDriverWait和ExpectedConditions等待WebElement很方便。问题是,如果WebElement.findElment是定位元素的唯一可能方式,因为它没有ID、没有名称、没有唯一类,那会怎样?WebDriverWait的构造函数只接受WebDriver作为参数,不接受WebElement。我已经设置了implicitlyWait时间,所以使用try{}catch(NoSuchElementExceptione){}似乎不是个好主意,因为我不这样做不想为这个元素等待那么长时间。场景如下:有一个网页的表单包含许多input标签。每个input标签都有格式