- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我即将开始开发一个小型 Java 桌面应用程序。该应用程序只是一个引擎,用户可以为其提供 Java 类来完成工作(将输入转换为输出)。
我希望用户提供实际的 Java 类作为可以动态加载(和重新加载)的文件。
对于这种特殊用途,Java 比 Groovy 或 Beanshell 更笨重的原因是什么?我不是要比较 Groovy/Beanshell 和 Java,因为有很多。相反,我想知道与 Java 相比,从文件中动态加载 Groovy 或 Beanshell 类是否更容易。
对于 Java 1.6,是 JavaCompiler动态加载代码的最佳方式?我想使用所有语言功能,所以我认为 Janino 已经出局了。另外,重新加载有什么问题吗?
最佳答案
JavaCompiler非常通用,但它带来了一个小的、潜在的配置问题:在 javax.tools 中, ToolProvider.getSystemJavaCompiler()将编译器类标识为 com.sun.tools.javac.api.JavacTool
。在某些平台上,该类不是 JRE 的一部分;似乎需要 JDK。这是一个 example .
同时考虑 javax.script , 讨论 here .几个scripting engines得到支持。
关于java - 动态 Java 编译 : BeanShell, Janino,JavaCompiler?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1961483/
我想用反射获取一个新创建的java类的所有方法。就像下面一样,我通过从另一个文件复制来创建 java 类,然后我使用 JavaCompiler 来编译新创建的 Java。但是不知道为什么没有创建目标类
我正在尝试习惯 JavaCompiler 并尝试用它编译程序,我可以成功编译包含单个文件的程序,但是当我尝试编译包含多个文件的项目时。我在编译实现其他类的文件以及该类使用已实现类的方法时遇到错误。 这
我正在使用 Eclipse,因此我的类文件存储在项目文件夹的“bin”中。如何设置 JavaCompiler 将编译后的类输出到这个“bin”文件夹? 我的代码: File fRun = new Fi
我编写了一个生成两个类的代码,我将它们写入缓冲区并使用 JavaCompiler 编译它们。我的类在 .java 文件中是这样的; public class A{ public A() { }
我尝试使用 Javax.tools.javacompiler 编译一些代码,但是每次编译器都不认为该类使用的接口(interface)不是类路径的一部分。 这些接口(interface)是调用编译器的
所以我正在构建一个程序,该程序使用内置的 JavaCompiler API 来编译 .java 文件目录。我通过一个目录解析它来编译文件,甚至编译它们,只是不是按照我需要的顺序。我找回了经典的“找不到
我有一个 java 程序,它使用 JavaCompiler 生成新的类文件。 我在 eclipse 中使用 jdk 1.6,效果很好。 但是当我将其导出为 jar 文件并且不想编译一些 .java 文
使用java程序,我需要编译一个包含一组.java文件的包,编译后我需要将.class文件移动到一个单独的文件夹. 我决定使用 JavaCompiler,而不是使用 ProcessBuilder 类从
我有以下代码用于使用 JavaCompiler 编译单个文件: JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); Diagno
我想在运行时编译 Java 类。假设该文件如下所示: public class TestClass { public void foo() { //Made error
我想从另一个类编译一个类,但我使用的每个方法都会抛出 NullPointerException。 代码如下: File fRun = new File(fileToRun); Diagnosti
当从 jar 文件调用时,我的 JavaCompiler 返回空指针。 如果我从命令行使用 JavaCompiler 运行我的程序,一切都会正常。所以 JDK 已正确安装在我的操作系统上。 为什么不起
这是我用来编译 java 类的代码: public void javaCompile(String fileName) throws IOException { JavaCompiler co
我正在开发一个注册 JavaCompile 的 gradle 插件。应该触发注释处理过程的任务。 这是我目前拥有的 private fun Project.runConfiguration(varia
我想制作一个可以生成和编译java源代码并从中生成jar文件的工具: 为此,我使用 JavaCompiler: JavaCompiler compiler = ToolProvider.getSyst
我目前有这个代码: private void compile(){ List files = getListOfJavaFiles(); //JavaCompiler
我的目标是以编程方式为名为 Minecraft 的游戏编译 Java 代码。我正在开发一个修改,允许用户编写java文件并编译它们,以便它们可以安装到游戏中(游戏是用Java制作的),我使用JavaC
所以我在 javax.tools.JavaCompiler 的 api 和 cmd 行编译器(它们是同一件事!)之间遇到了一个烦人的小问题。我只是想对 javac 使用一个参数,例如:*-d C:\c
我有这样一个程序:它在内存中编译文件,然后从内存中执行它们。因此,我需要一个带有文件管理器的自定义类加载器,该文件管理器将文件存储在 memo://中。现在我想将参数传递给编译器输出类,因为我认为它不
我的 Java 编译器出现一些错误。我在 Eclipse 之外没有收到错误,但它似乎只发生在 Eclipse Indigo 中。这不是必需的,但如果您有答案,我将不胜感激,因为它会帮助我更轻松地调试和
我是一名优秀的程序员,十分优秀!