如何跑步。java中的exe文件
我知道以前有人问过这个问题,但这些答案似乎都不适合我。我想找一份工作。在java程序中运行的exe文件。以下代码(我从互联网上摘取)有效;记事本启动
import java.io.IOException;
public class start {
public static void main(String args[])
{
try {
Process p = Runtime.getRuntime().exec(new String[] {"C:\\Windows\\System32\\notepad.exe"});
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
但当我将文件夹更改为包含我自己的文件夹时。exe文件,它什么都不做。它甚至没有给出一个错误。它只是开始和结束。如果我双击文件夹本身中的文件,它就会打开并运行,因此文件本身可以工作
所以,为了清楚起见,我把Process p
改为
Process p = Runtime.getRuntime().exec(new String[] {"C:\\Users\\Sharonneke\\Documents\\IntraFace-v1.2\\x64\\Release\\IntraFaceTracker.exe"});
为什么这不起作用?我该如何修复它
更新:
所以我不必使用new String []
,但这并不能解决问题。另外,使用ProcessBuilder(如回答部分中提到的kage0x3b)会产生错误:"The constructor ProcessBuilder(String) is undefined"
,而它显然应该是这样工作的:(
# 1 楼答案
如果程序试图从工作目录加载文件,那么它的工作目录可能会有问题。如果单击工作目录,显然会工作,但如果不设置,我认为从Java代码执行时不会。 尝试使用ProcessBuilder,然后设置工作目录:
# 2 楼答案
运行一个应用程序不需要一个数组
只要做:
并添加相应的
try catch
块使用Process Builder
# 3 楼答案
谢谢你们的帮助,但不幸的是,你们的答案都不起作用。我设法找到了运行我的代码足够好的东西(据我的主管说),所以我很高兴。这就是我现在使用的:
出于某种原因,即使我像以前那样使用它,它也不会起作用,但我决定不再问问题。有效:) 再次感谢您抽出时间来帮助我