大家好 我正在编写一些软件,允许用户为我的软件包中的特定用途创建他们自己的 Java 类。显然,我的软件需要能够调用 Java 编译器来编译用户生成的类,以便在我的程序中使用。但是,我不想要求用户下载并安装整个 JDK,以便他们可以访问 javac Java 编译器。我知道在 Jave 6 中有一个新的 Java 编译器 API,但即便如此,只有 JRE 而不是 JDK 的用户在尝试实例化 Java 编译器工具时将得到一个空对象。
那么,要让我的程序能够编译 Java 类,同时要求最终用户只在他们的机器上安装 JRE,最好的方法是什么?如果这不可能,我需要在用户计算机上安装的最少一组库/jar 文件是什么?
我想另一种可能性是使用 JWS (javaws) 通过网络启动应用程序。在这种情况下,我的软件是否可能不需要 JDK(我认为主要是 tools.jar)?我是否必须以某种方式将 tools.jar 与我的软件捆绑在一起?
最佳答案
您可以独立使用 Java compiler from Eclipse .它不需要安装 JDK,它是您可以在项目中使用的单个 JAR 文件。这是在 Eclipse 本身内部使用的编译器,但它也可以集成到其他程序中。您可以在 http://download.eclipse.org/eclipse/downloads/drops/R-3.6.2-201102101200/index.php 找到当前最新的稳定版本。 ,寻找寻找JDT Core Batch Compiler。文档位于 http://help.eclipse.org/helios/index.jsp?topic=/org.eclipse.jdt.doc.isv/guide/jdt_api_compile.htm
您还可以使用 Janino ,它还可以编译比完整的 Java 类更小的单元: block 、表达式。虽然它不是完整的编译器,但它不支持您的用户使用的 Java 语言的所有功能(泛型、注释、枚举……)
关于java - 使用 Java Compiler API 无需安装 JDK,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5600213/