java - 执行java文件并从cmd获取输出

标签 java

我想编译第二个文件并获取输出,但它抛出一个 Exception 。

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

    String path="C:\\Users\\Amr\\Documents\\NetBeansProjects\\Second.java";   

    Process pro1 = Runtime.getRuntime().exec("javac " + path);

    ProcessBuilder ps = new ProcessBuilder("java ", path);

    ps.redirectErrorStream(true);

    Process pr = ps.start();

    BufferedReader in = new BufferedReader(new InputStreamReader(pr.getInputStream()));
    String line;
    while ((line = in.readLine()) != null) {
        System.out.println(line);
    }
    pr.waitFor();
    System.out.println("ok!");

    in.close();

    pro1.waitFor();

}

从这个类中获取输出

public class Second {
public static void main(String[] args) {
    System.out.println("Hello world from Second.java");
}}

请帮忙修复错误

那是错误

Error: Could not find or load main class C:\Users\Amr\Documents\NetBeansProjects\Second.java

最佳答案

 ProcessBuilder ps = new ProcessBuilder("java ", path);

你正在执行 java Second.java 它应该是 java Second

替换 path.replace(".java","") 或创建一个没有 ".java"的变量

nsaravanas@ubuntu:~$ pwd
/home/nsaravanas
nsaravanas@ubuntu:~$ javac com/test/Second.java
nsaravanas@ubuntu:~$ java com.test.Second
Hello world from Second.java
nsaravanas@ubuntu:~$

关于java - 执行java文件并从cmd获取输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35075752/

相关文章:

java - symbian 应用程序作为后台进程

java - 如何使用 Mockito 关闭 stub 方法的参数

java - 使用 Dagger + 解析服务器 SDK : java. lang.IllegalArgumentException

java - 从 Spring MVC 中的自定义 Controller 访问服务层

java - 使用 RegexpVirtualURIMapping 映射到 Magnolia 中的静态目录

java - Spring Boot传递局部变量

java - 调整大小时,JFrame 在 Windows 8.1 上卡住

java - 从 console.firebase.google.com 取消用户后,用户身份验证仍然存在

java - Hibernate HQL否定 'is'语句的正确语法是什么

java - Hibernate - 简单查询延迟获取