【问题标题】:How can I create a Java class file from a Java file from my program?如何从我的程序中的 Java 文件创建 Java 类文件?
【发布时间】:2013-02-28 15:19:13
【问题描述】:

假设有一个 Java 文件存在于外部文件夹中。我可以编写一个 Java 程序来生成该 Java 文件的 .class 文件并将 .class 文件放在同一个外部文件夹中吗?

【问题讨论】:

  • 不,先生。当然 javac 可以从 .java 文件创建类文件。但我必须在不使用 javac 的情况下这样做,并运行我自己的程序来创建该类。
  • 外部是什么意思?

标签: java


【解决方案1】:

(对我而言)最简单的方法是包含tools.jar 并调用com.sun.tools.javac.Main.compile() 函数。

【讨论】:

  • 注意sun.tools.javac.Mainjavax.tools.JavaCompiler替换参考here
  • @PauKiatWee 你说得对,我只是觉得旧的快速而肮脏的界面更舒服(“......最简单的方法......”)。
  • 你能告诉我在哪里可以下载 tools.jar 吗?还有一件事,这段代码我必须在 struts 1 frmawork 中实现。
  • 一般在Java SDK安装根目录的lib目录下。
  • @Adriano 感谢大家的帮助。我已将 tools.jar 放在我的 Eclipse 库中。但我仍然无法使用 javax.tools.JavaCompiler。我不能将此代码用于我的 sturts 应用程序吗?
【解决方案2】:

是的,你可以用java编译器来做

JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
StandardJavaFileManager fileManager = compiler.getStandardFileManager(null,null,null); 

Check this for further details

【讨论】:

    【解决方案3】:

    在这里:java.lang.Compiler。 这个类有方法compileClass(Class class)compileClasses(String names)

    【讨论】:

    • 编译器类应该被弃用。它与编译 Java 源代码无关,在现代 JVM 中,它根本不做任何事情。
    • 根据文档,确实如此。我更新了指向 Java 6 文档的链接。 @boneill
    • 你能提供这个类编译Java源代码的工作示例吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-07-14
    • 2012-06-28
    • 2014-01-13
    • 2015-12-30
    • 2017-01-15
    • 1970-01-01
    • 2015-04-10
    相关资源
    最近更新 更多