问题标签 [jsr199]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
19223 浏览

java - 使用 javax.tools.JavaCompiler 编译源时如何设置类路径?

我使用类javax.tools.JavaCompiler(jdk6)编译源文件,但源文件依赖于一些jar文件。如何设置类路径javax.tools.JavaCompiler

0 投票
1 回答
626 浏览

java - 使用 JSR 199 Compiler API 在目录树中编译一组 Java 文件

我正在尝试使用 Compiler API 编译许多文件。

假设我有一个目录结构

有什么方法可以发现所有 Java 文件并使其编译所有内容,而无需递归到所有目录并查找所有 *.java 文件?

编辑:我想做的是编译我在某个目录树中得到的所有类。这些类是相互独立的。然后我加载类并实例化这些类的一些对象并调用方法。没有一个类需要有主。

0 投票
1 回答
2405 浏览

java - javax.tools 是否依赖于 JDK?

我想用来JavaCompiler动态创建一些类。

找到了包的源码javax.tools,但是没有实现;互联网上的一些帖子说这取决于tools.jar,我不确定是否tools.jar与 JRE 有联系。

那么,我可以在没有安装 JDK 的 JRE 环境中运行程序吗?

另一个问题,它的实现细节JavaCompiler是什么,它是创建一个新进程来调用javac命令吗?

谢谢

0 投票
3 回答
2316 浏览

java - JDK 1.6 中的 JavaCompiler:如何将类字节直接写入 byte[] 数组?

所以我最近了解到JDK 1.6 中提供了新的JavaCompiler API 。这使得直接从运行代码编译String到文件变得非常简单:.class

您可以JavaSourceFromStringJavadoc获取源代码。

这将非常方便地编译sourceCodeFoo.class当前工作目录中。

我的问题是:是否可以直接编译为byte[]数组,并避免完全处理FileI/O 的混乱?

0 投票
2 回答
1890 浏览

java - 如何运行JavaCompiler编译的代码?

有没有办法运行JavaCompiler编译的程序?[javax.tools.JavaCompiler]

我的代码:

现在我想以 1 秒的生命周期运行该程序并将输出输出到字符串变量。有什么办法可以做到吗?

0 投票
2 回答
2928 浏览

java - 不创建物理文件的动态编译

我按照通过 Java 编译器 API 动态生成 Java 类的教程进行操作,代码可以工作,但我看到的是程序在编译后会创建一个类文件。

是否有可能在调用compilerTask.call();后不创建类文件?如果是的话怎么做?

0 投票
2 回答
263 浏览

java - 访问自定义库时出现 NoSuchMetodError 异常

我有一个关于 java.lang.NoSuchMethodError 的问题。这个程序是关于编译器 API (JSR 199)。当我为此创建原型时,它运行工作,但是当我尝试使其成为库时,它会抛出 NoSuchMethodError 异常。

这是第一个原型:

我将 DynaCompTest 更改为库的 DynamicCompiler:

我创建了第二个原型来测试库:

当我用上面的代码进行测试时,它运行良好并打印BUILD SUCCESSFUL,但是当我试图让它出错时,例如我删除了;第一个原型一样的分号,它在访问compiler.getDiagnostics().getDiagnostics()循环内部时抛出 NoSuchMethodError 异常。

问题是,为什么在第一个原型中它在尝试出错时运行良好,但当我尝试使用自己的库时它变成异常?

编辑

这是堆栈跟踪:

它应该是这样的:

在尝试调试它时,它显示了一个错误:

这是错误消息:

更新

遇到问题了,如果我们添加整个项目而不是构建库的jar,就会出现这个问题。因此,当我构建库 jar 时,它可以工作。但是任何人都可以解释为什么当我尝试添加整个项目而不是 jar 文件时会发生这种情况?

笔记

我正在使用:

  • 来自 Oracle 的 JDK 1.7
  • 网豆 7.1.1
0 投票
2 回答
125 浏览

java - 加载运行时编译源时 Java 包类名格式错误

我有一个 Java 运行时编译器,如下所示:

以及一个随附的简单类加载器示例:

当编译和加载一个类时,生成的类的包名被连接到类名中:

出乎意料的输出如下:

我在哪里错了?

0 投票
1 回答
161 浏览

java - 如何在 javax.tools.JavaCompiler 的类路径中使用远程 jar

JavaCompiler用来编译 .java 代码。

它在运行URLClassLoader用于加载远程 jar 编译的类时对我有用。但在编译时不起作用。

尝试使用类似的选项

还尝试使用自定义JavaFileManager的 with URLClassLoader

它们都不起作用。