【问题标题】:how to compile & run java program in another java program-netbeans如何在另一个java程序-netbeans中编译&运行java程序
【发布时间】:2014-03-17 16:16:34
【问题描述】:

我尝试使用 netbeans 在question 中运行已接受的答案。类文件已创建但未执行。 这是我的代码

import java.io.*;

public class Laj {

  private static void printLines(String name, InputStream ins) throws Exception {
    String line = null;
    BufferedReader in = new BufferedReader(new InputStreamReader(ins));
    while ((line = in.readLine()) != null) {
      System.out.println(name + " " + line);
    }
  }

  private static void runProcess(String command) throws Exception {
    Process pro = Runtime.getRuntime().exec(command);
    printLines(command + " stdout:", pro.getInputStream());
    printLines(command + " stderr:", pro.getErrorStream());
    pro.waitFor();
    System.out.println(command + " exitValue() " + pro.exitValue());
  }

  public static void main(String[] args) {
    try {
      runProcess("javac /home/shibin/NetBeansProjects/JavaApplication3/src/javaapplication3/Main.java");
      Thread.sleep(1000);
      runProcess("java /home/shibin/NetBeansProjects/JavaApplication3/src/javaapplication3/Main");
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}

Main.java 只是一个打印语句,

  public class Main {
  public static void main(String[] args) {
System.out.println("Done");
 }
 }

我遇到了错误

javac /home/shibin/NetBeansProjects/JavaApplication3/src/javaapplication3/Main.java exitValue() 0

java /home/shibin/NetBeansProjects/JavaApplication3/src/javaapplication3/Main stderr: Error: Could not find or load main class 
.home.shibin.NetBeansProjects.JavaApplication3.src.javaapplication3.Main

java /home/shibin/NetBeansProjects/JavaApplication3/src/javaapplication3/Main exitValue() 1

【问题讨论】:

  • 同时粘贴你的 Main.java
  • 在您的代码中使用这些命令行之前,您是否测试过它们?问题就在那里:执行器正在寻找包 home.shibin.NetBeansProjects.JavaApplication3.src.javaapplication3(类路径问题)
  • 这段代码在使用终端执行时运行良好。使用 netBeans 时,在 home.shibin.NetBeansProjects.JavaApplication3.src.javaapplication3 文件夹中创建了 Class 文件,但不执行。

标签: java netbeans


【解决方案1】:

运行java程序的命令是java packageName.programName或者java packageName/programName这里的问题是你运行的是java pathOfProgram/programname的代码。要解决此问题,您必须使用 -cp 参数提供类路径,后跟 programPath,如下所示:

java -cp pathOfProgram packageName.programName

【讨论】:

  • 要添加到上面的评论,你的命令应该是 [[ java -cp /home/shibin/NetBeansProjects/JavaApplication3/src/javaapplication3 Main ]] 我没有看到包声明,所以它在默认包中.另外,只需查看此链接 - javaworld.com/article/2071275/core-java/… 如果您是初学者,它可能有点高级,但您会在那里找到一些好的做法。
【解决方案2】:

试试这个:

runProcess("java -cp /home/shibin/NetBeansProjects/JavaApplication3/src/javaapplication3 Main");

【讨论】:

    【解决方案3】:

    你的 java 命令应该有类路径参数。更喜欢使用 cmd 数组。 Java 进程 api 不是 xommand 行。

    【讨论】:

      猜你喜欢
      • 2011-06-18
      • 1970-01-01
      • 1970-01-01
      • 2013-02-19
      • 2011-03-20
      • 2019-02-19
      • 1970-01-01
      相关资源
      最近更新 更多