关于JAVA Project.waitfor()死锁问题】的更多相关文章

在正常情况下我们可以用Project.waitfor()的返回值是否等于0的方法来判断java调用外部程序是Pass或者是Fail. 但是这个方法往往会被因进程堵塞而导致程序发生死锁,无法再继续执行外部程序. 因为本地的系统对标准输入和输出所提供的缓冲池有限,所以错误的对标准输出快速的写入和从标准输入快速的读入都有可能造成子进程死锁.问题的关键在缓冲区这个地方:可执行程序的标准输出比较多,而运行窗口的标准缓冲区不够大,所以发生阻塞.接着来分析缓冲区,当Runtime对象调用exec(cmd)后,…
关于JAVA Project.waitfor()返回值是1   0条评论 Project.waitfor()返回值是1,找了很久从网上没有发现关于1的说明. 这时对源代码调试了一下,发现Project=null.而去根目录下点击被调用的bat文件发现也可以被正确执行. 这时想到应该将标准错误流的信息打印出来,发现是bat文件的路径只获取到了第一个空格前.所以问题的原因是空格导致文件路径不能被获取. 原先的代码 String batpath = file.getCanonicalPath() +…
Project.waitfor()返回值是1,找了很久从网上没有发现关于1的说明. 这时对源代码调试了一下,发现Project=null.而去根目录下点击被调用的bat文件发现也可以被正确执行. 这时想到应该将标准错误流的信息打印出来,发现是bat文件的路径只获取到了第一个空格前.所以问题的原因是空格导致文件路径不能被获取. 原先的代码 String batpath = file.getCanonicalPath() + "\\resources\\runTest.bat"; //ru…
项目出现 java compiler level does not match the version of the installed java project facet 错误,一般是项目移植出现环境版本不一致造成的. 如图所示: 解决方案: 在资源管理器下,找到项目所在的目录,在.settings子目录里面,用文本编辑器打开org.eclipse.wst.common.project.facet.core.xml配置文件,如图所示: 修改红色画线部分,让它与项目的编译器版本设置保持一致即可…
Java compiler level does not match the version of the installed java project facet错误的解决 因工作的关系,Eclipse开发的Java项目拷来拷去,有时候会报一个很奇怪的错误.明明源码一模一样,为什么项目复制到另一台机器上,就会报“java compiler level does not match the version of the installed java project facet”错误呢? 如图所示…
When a java project needs to be transfered to another machine, e.g. vps, we need to export it to a runable jar and then run it directly on a new machine. right click project in eclipse, and export to a runable jar. Choose the second Library handling…
I often to generate a Java project or Web project with Eclipse tool. Well, I have no idea when I want to generate a Java project or Web project with the command window in the Windows 7. So, I think I need to record how to generate a Java project or W…
Java compiler level does not match解决方法 从别的地方导入一个项目的时候,经常会遇到eclipse/Myeclipse报Description  Resource Path Location Type Java compiler level does not match the version of the installed Java project facet.出现这个问题的原因是因为,eclipse/myeclipse的jdk编译版本与出现问题的项目JDK…
因工作的关系,Eclipse开发的Java项目拷来拷去,有时候会报一个很奇怪的错误.明明源码一模一样,为什么项目复制到另一台机器上,就会报“java compiler level does not match the version of the installed java project facet”错误呢? 如图所示: 其实要解决也很简单,在资源管理器下,找到项目所在的目录,在.settings子目录里面,用文本编辑器打开org.eclipse.wst.common.project.fac…
从同事那里拷贝过来的web项目,导入到eclipse中,出现Java compiler level does not match the version of the installed Java project facet 问题. 如图所示: 其实要解决也很简单,在资源管理器下,找到项目所在的目录,在.settings子目录里面,用文本编辑器打开org.eclipse.wst.common.project.facet.core.xml配置文件,如图所示: 修改红色画线部分,让它与项目的编译器版…