java - 使用 Java Compiler API 无需安装 JDK

标签 java compiler-construction java-web-start

大家好 我正在编写一些软件,允许用户为我的软件包中的特定用途创建他们自己的 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/

相关文章:

java - Java 小程序可以在没有警告的情况下使用 v1.7 或 1.8 吗?

java web start代码库证书链

java - xml java xslt 标签

java - hibernate 和西里尔

linux - OMP 与 x86_64-w64-mingw32-g++ 交叉编译

适用于 Mac 的 Ruby 编译器?

java - 打印数组列表中负数的位置

java - Android Webview 因错误而崩溃(错误 | EGL_BAD_DISPLAY)

parsing - 为什么我们不能使用 CFG 来扫描/标记化?

Java 1.6 -> 1.7 JNLP = SIGSEGV