Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 外部程序执行_Java_Eclipse - Fatal编程技术网

Java 外部程序执行

Java 外部程序执行,java,eclipse,Java,Eclipse,我总是很感激 如何启动java的外部程序,但它不起作用。 在下面的程序中,虽然如果从命令行启动,我将工作,但是,当我在上运行eclipse时,它不工作。 出现的错误是,无法加载主类丢失或(エラー:メインクラスがみつからないかロードできません). 如何在eclipse中运行外部程序? 请告知,谢谢 package test.jersey.resources; public class Execute02 { public static void main(String[] args) {

我总是很感激

如何启动java的外部程序,但它不起作用。 在下面的程序中,虽然如果从命令行启动,我将工作,但是,当我在上运行eclipse时,它不工作。 出现的错误是,无法加载主类丢失或(エラー:メインクラスがみつからないかロードできません). 如何在eclipse中运行外部程序? 请告知,谢谢

package test.jersey.resources;

public class Execute02 {
    public static void main(String[] args) {
    String filename = "C:\\Users\\omiz12032\\workspace3\\TestJavaServlet\\src\\test\\jersey\\resources\\start.bat";
        try {
          Process proc = Runtime.getRuntime().exec(filename);
          System.out.println("実行中");

          proc.waitFor();
          System.out.println("実行終了");
        } catch( Exception e ) {
          System.out.println(e);
        }
    }
}
在两个步骤中调用哪些委托,第二个和第三个参数的结果是
null
s

这些是
envp
dir
。从Java进程继承
envp
(又称环境变量)不应该是问题。更大的问题是
dir
这是工作目录。如果您调用的
.bat
文件编写得不好(不准备在其目录外执行)使用程序的工作目录时,它将无法解析其依赖项。请尝试以下操作:

File workingDir = new File("C:\\Users\\omiz12032\\workspace3\\TestJavaServlet\\src\\test\\jersey\\resources");
// the no-array call of exec tokenizes your command which may lead to unexpected results if it contains spaces
// also you can put arguments here as well as separate array elements
String[] command = { "start.bat" }; // for example { "start.bat", "--fooBar" }
Process proc = Runtime.getRuntime().exec(command, null, workingDir);

您收到的错误消息是什么?为了在Eclipse中运行任何东西,您需要导入代码并重新编译。如果您导入的是与项目相反的文件,则可能需要使用适当的库进行重建。请添加您遇到的问题的错误消息。
无法找到或加载主类
,如果是这样的话如果您遇到错误,请尝试清理并重建项目。另外,请检查您在eclipse中使用的启动配置->
菜单中的绿色按钮>运行配置
选项卡
Main
检查类
test.jersey.resources.Excecute02
是否存在。如果没有,请单击浏览并选择它。感谢您的评论。错误m消息是,找不到主类或无法加载主类。但是此消息,它是被翻译成英语错误日语句子的消息。因此,它不是直接显示在命令行上的文本。但我忘了写,bat文件要启动,是启动多个其他程序。错误消息是laun程序的类找不到bat文件中的ched。感谢您的评论。在我尝试过的地方,我收到以下错误消息:“无法运行程序”start.bat“(在目录“C:\Users\omiz12032\workspace3\TestJavaServlet\src\test\jersey\resources\start.bat”中):CreateProcess error=267,?f?B从目录名中删除
\start.bat
。毕竟我有一条错误消息“无法运行程序”start.bat(在目录“C:\Users\omiz12032\workspace3\TestJavaServlet\src\test\jersey\resources”中):CreateProcess error=2,w?????t@?嗯,error=2表示“找不到文件”请尝试使用命令行仔细检查路径:
cd C:\…\resources
,然后使用
start.bat
。如果这样做有效,您可以尝试使用命令数组中的完整路径。已从命令行确认该路径,但会出现相同的错误。