【问题标题】:How to compile some java files in to a bin directory from my Java app?如何从我的 Java 应用程序将一些 java 文件编译到 bin 目录中?
【发布时间】:2016-04-15 03:17:28
【问题描述】:

我有一个 Java 应用程序需要将 Java 文件从 src 目录动态编译到带有 lib 目录的 bin 目录中:

结构如下:

Dir_Result
  src
  lib
  bin

项目将 src 和 lib 2 个目录从 Dir_Origin 复制到 Dir_Result,然后以编程方式更改 Dir_Result/src 中的一些 Java 文件并将它们编译到 Dir_Result/bin 中

通常我使用 Netbeans 编译项目,但现在我需要编写 Java 代码来为我进行编译。我尝试了以下方法,它没有错误地通过。但是我在 bin 目录中看不到任何内容。没有错误也没有输出。

runCommand("javac -d C:/Dir_Result/bin/ -cp C:/Dir_Result/lib/* C:/Dir_Result/src/*");

...

  public static String runCommand(String Command)
  {
    String Line,Result="";
    Process Child;

    try
    {
      Child=Runtime.getRuntime().exec("cmd.exe /c "+Command);
      Result+="Executing : "+Command+"\n";      
      BufferedReader Input=new BufferedReader(new InputStreamReader(Child.getInputStream()));
      while ((Line=Input.readLine()) != null) Result+=Line+"\n";
      Input.close();
      Result+="Done\n";
    }
    catch (IOException e) { Result+=e.toString(); }

    return Result;
  }

我不知道出了什么问题,如何解决?如果我需要设置类路径,如何在我的程序中进行设置,或者是否可以从 runCommand 设置?

【问题讨论】:

  • 我运行了你的代码,它正在生成编译文件。
  • 请检查Dir_Result/bin是否存在

标签: java command-line compilation


【解决方案1】:

我找到了原因,这是因为我的一些 Java 文件有一些不同编码的字符,所以我添加了“-encoding ISO-8859-1”并且它起作用了。

【讨论】:

    猜你喜欢
    • 2011-05-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-04
    相关资源
    最近更新 更多