问题标签 [java-compiler-api]

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 投票
5 回答
12942 浏览

java - 为什么 Java 在语句末尾不显示双分号错误?

我不小心写了一个结尾有两个分号的java语句。java 编译器没有显示任何错误并且它运行。

代码:

出于学习目的,我尝试在分号后添加不同的字符,并且 java 编译器已将编译时错误显示为令牌“)”上的语法错误,删除此令牌

这个说法:

为什么java将分号和其他字符视为不同?

0 投票
3 回答
137 浏览

java - 从文件中获取类

我有一个源代码,其中source有两个classes引用。

现在我想通过compile这个代码,JavaCompiler但因此我必须先编译两个引用的classes.

有没有比读取文件并搜索类更好的方法来先编译它们?

XTest.java 和 YTest.java 与 Suite 位于同一目录中

0 投票
2 回答
434 浏览

java - Eclipse->New Android Projects 总是编译 java 1.4

每次我在 Eclipse-Workspace 中添加/创建或复制项目时,它都会被识别为 Java 1.4 项目,这会导致错误的总和。我必须自己在 properties->java-compiler 下解决这个问题并在那里检查 1.6。所以我对此有几个问题:是否可以预先定义 Eclipse 必须选择的编译器?是否有一个配置文件告诉 eclipse 选择哪个编译器?

0 投票
1 回答
1093 浏览

java - 编译单元访问者 - Java 编译器树 api

我正在使用编译器 Tree api 将我的代码解析为 AST,但是从不调用方法 visitCompilationUnit,尽管调用了方法 visitClass,我做错了什么?

第二个问题:有什么方法可以告诉编译器截断编译后的代码(我只对 AST 感兴趣,而不对类文件感兴趣)。

谢谢。

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 回答
290 浏览

java - 开发一个java程序来编译.java文件

我正在研究一个项目,该项目将涉及我的项目来编译足够简单的 java 文件。根据我的研究,我决定不尝试构建自己的编译器,因为这会花费太多时间。

那么有谁知道在这个项目中实现的最佳编译器是什么,以便我能够编译提交给程序的 java 文件?

0 投票
3 回答
303 浏览

java - 限制 Java 编译器 API

我正在考虑创建一个使用更受限制的 Java 版本的游戏内代码 IDE,例如我不希望它使用 I/O 流 API。这甚至可能吗?

此外,inb4 this。它仍然无助于限制能力,只有愚蠢/邪恶的学生XD。

0 投票
1 回答
524 浏览

java - Java 编译器树 api:NPE

我正在尝试使用另一个 treepathscanner 访问方法主体,但我不知道要传递哪个参数,因为我总是在 TreePath 构造函数中获得 NPE。

例外:

谢谢你的帮助。

0 投票
0 回答
285 浏览

java - 编译器树 api:获取完全限定名称

我正在使用 Java Compiler Tree API 来解析 Java 源代码。

目前我遇到了以下问题。考虑我有一个使用“Foo”类型的导入变量的方法。Foo 类类似于某些包中的类。

有没有办法获得这个类的完全限定名称?

我想

  • 如果它是进口的,比它容易查找
  • 但是,它可能在同一个包中(这应该知道编译器?),因此它没有被导入
  • 甚至它可能在某个外部库中并使用通配符链接 - 我无法查找它。

这个问题有什么解决办法吗?

谢谢。