【问题标题】:ProcessBuilder call another java file same packageProcessBuilder调用另一个java文件同一个包
【发布时间】:2016-08-28 05:58:55
【问题描述】:

我正在学习如何使用 ProcessBuilder,我创建了一个名为 socketspractice 的包,里面有 2 个类,我正在尝试创建一个新进程,其中“Program.java”调用“test1.java” ' 所以它打印 'test1'。

当我使用命令提示符时:"java socketspractice.test1" 'test1' 打印,但使用 Netbeans 却没有。

问题是,如何设置路径以使其以相同的方式工作,或者我还缺少什么?我正在为此使用 Netbeans。

Program.java

package socketspractice;

import java.io.File;
import java.io.IOException;
import java.lang.ProcessBuilder;

public class Program {
public static void main(String[] args) throws IOException, InterruptedException {

    ProcessBuilder builderExecute = new ProcessBuilder("java",  "socketspractice.test1");

    builderExecute.start();

    }
}

test1.java 封装socketspractice;

public class test1 {

public static void main(String[] args) {
    // TODO code application logic here
    System.out.println("test1");
    }
}

【问题讨论】:

  • 如何在 NetBeans 中执行?
  • 我选择了程序文件/rmb/运行文件

标签: java netbeans path processbuilder


【解决方案1】:

您的方法的主要问题是,当您启动 ProcessBuilder 时,它不知道您的项目在您的机器上的位置,因为它作为单独的 JVM 进程运行。

因此,请将您的项目创建为 maven 项目,然后尝试将编译后的 jar 放入类路径中,然后启动流程构建器。

ProcessBuilder pb = new ProcessBuilder("java","-classpath", 
        "<complete location of your jar containing test1>", "socketspractice.test1")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-28
    • 1970-01-01
    • 2020-06-07
    相关资源
    最近更新 更多