问题标签 [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.
java - Java 编译器 API NullPointerException
我正在使用此代码在运行时编译 Java 文件。首先,这是我的目录树(在 Eclipse 中)。
这是我得到 NullPointerException 的代码(我已经尝试在 Eclipse 中使用 JDK 作为我的标准 VM)。
这是 CustonJavaFileObject:
我究竟做错了什么?
编辑:
我的 PATH 中没有 JDK(我无法添加它)
这是我的堆栈跟踪:
java - 使用 JavaCompiler 以编程方式编译 java?
我从另一个 Stack Overflow 线程得到了这个 Java 代码
但我不断收到这样的 NullPointerException
它确实编译但它在运行时抛出异常。我究竟做错了什么?
java - 是否可以仅在内存中以编程方式编译 java 源代码?
我发现许多参考资料解释了如何使用该类以编程方式编译 JavaJavaCompiler
类:
但是,我想知道是否有一个开源库可以让我编译以编程方式生成的源代码(因此不涉及 src 文件)并在输出流中生成一些字节码(而不在文件系统中生成类文件)。
例如,我正在寻找能够写这样的东西:
谢谢你的帮助。
java - Java 执行之间的 Java 字符 IO
使用javax.tools.JavaCompiler
and javax.tools.ToolProvider
,我将一个用户输入字符串(应该是一个方法)与一个预定义的类一起包装在一个大字符串中,并在我的代码中执行它。有没有办法(在同一代码中)实例化已编译的类(因为它直到运行时才存在)以使用预定义的一组案例测试所述函数?
示例:提示用户编写一个方法,该方法返回作为参数发送给它的相反布尔值。
用户键入所述方法。
我围绕该方法包装了一个通用类,并使用一组预定义的测试用例(true,false)来检查它的功能(应该返回 false,true)
eclipse - JAXB 编译错误,afterUnmarshall 的未使用参数
我void afterUnmarshal(Unmarshaller unmarshaller, Object parent)
在我的 bean 中使用,如果不使用参数,编译器设置为失败。
如果我覆盖具有参数的 javadoc 的超类/接口,编译器似乎可以使用未使用的参数。
但是我找不到任何类来覆盖 afterUnmarshall 方法。是否没有解组器接口或类似的东西来解决这个问题?
java - 有没有办法在给定范围内生成唯一的变量名?
给定 a Scope
,是否有一个函数可以生成唯一变量名,以便可以在范围内插入唯一名称的变量声明,并且生成的源代码 /CompilationUnitTree
仍然可以编译?
java - 是否有用于按评估顺序访问表达式树的 TreeVisitor?
使用 Java Compiler Tree API,可以使用 a 遍历 a 的叶子树TreePath
及其子树TreeVisitor
。
是否有TreeVisitor
按评估顺序访问所有“节点”的实现?例如,如果7 - 8 * 2 + 10
被解析为:
是否有一个TreeVisitor
会访问BinaryTree
for8 * 2
后跟BinaryTree
for 7 - (8 * 2)
,然后是BinaryTree
for (7 - (8 * 2)) + 10
?
blackberry - 为不同版本编译不同的部分 - Java
有没有办法使用 eclipse 为不同的部分编译 BlackBerry Java 代码? BB 版本 OS 6.0 及更高版本中有一个名为LocationInfo的类。
如果尝试为 OS 5 编译,我会收到编译错误(因为未定义 LocationInfo)但是如果我为 OS 6 编译我的代码,我将无法在任何基于 5 的设备上进行部署。
我希望我的代码库是版本 5 并支持Locationinfo的方法 (仅在 6.0 及更高版本中可用)。是否可以进行分段编译或者是否有任何解决方法?
谢谢
java-compiler-api - 使用 Java Compiler API 编译多个 java 文件
您好我需要创建、编译和加载 java 类运行时。使用 FTL 我正在创建 java 源文件,并且如果没有动态依赖项,则能够编译源代码。
用一个实例来详细说明,我有两个java源文件,一个接口及其实现类。我可以使用 java 编译器 api 编译接口,如下所示
我为已经在 classpath 中的静态类设置了类路径,但是这种方法不适用于动态创建的类?任何自定义类加载器都可以解决这个问题吗?我的最终实现将在 web/app 服务器中
任何反馈将不胜感激
萨西什
java - 最好的选择?在编译之前编辑字节码 (asm) 或编辑 java 文件
目标
- 检测变量之间的比较和副本在哪里进行
- 在操作发生的行附近注入代码
- 代码的目的:每次运行类时都会增加一个计数器
通用:计算使用某些参数执行后进行的比较和复制的数量
2 个选项
注意:我总是有一个 .java 文件开头
1)编辑java文件
查找与正则表达式的比较并在行附近注入代码片段然后编译类(我的应用程序使用JavaCompiler)
2)使用ASM字节码工程
还检测我想要跟踪的事件并将片段注入字节码然后使用(已经编译但修改)类
我的问题
最好/最干净的方法是什么?有一个更好的方法吗?