问题标签 [javacompiler]
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 代码需要很长时间才能编译
有一个大型 Java 项目需要很长时间才能通过 Maven 和 IntelliJ IDEA 进行编译。
我想尝试改进这一点,但你知道他们所说的没有测量的优化,所以我们来了。
CPU 使用率有时在所有内核上为 100%,但有时会下降 10 多秒。RAM 和磁盘已使用,但似乎容量不足(从 Windows 任务管理器判断)。
我有兴趣测量任何有帮助的东西。主要是哪些源文件、哪些构造或哪些编译步骤。
(关于项目的详细信息:数百万行代码,数十个maven项目,语言级别8但最近的jdk)
javacompiler - java 编译器如何处理重复的变量名。它使用什么机制?
它是否使用任何不允许重复的数据结构。其背后的逻辑究竟是什么。
android - Gradle 自定义 JavaCompile 任务进行注解处理
我正在开发一个 gradle 插件,该插件注册了一个JavaCompile
应该触发注释处理过程的任务。
这是我目前拥有的
在一个 android 项目中,当我应用我的插件并使用 gradle 运行任务时,到目前为止什么都没有发生。我什至尝试在处理器的第一行抛出异常,但仍然没有成功。
我错过了什么或做错了什么?另外,我如何告诉任务它应该ShuttleProcessor
用作注释处理器。
我正在与kotlin
而不是Groovy
。
谢谢。
java - 如何使用 javax.tools.JavaCompiler 创建一个调用自定义注释过滤的子类方法列表的函数?
我有这种不寻常的(我认为?)情况
现在我有一个扩展 Base 的类,并有一些带有签名的方法,如 executeAll 方法中所述,如下所示:
我知道这可以很容易地实现,我创建一个“受保护的摘要Collection<BiConsumer<Foo, Bar>> getToBeCalled()
”让每个孩子都扩展它并将 executeAll() 方法编写为:
但这不是我想要达到的。我需要一种方法来从子类中执行方法,而无需开发人员进行任何重大干预(这就是为什么我考虑使用注释来标记希望执行的方法,仅此而已)。
现在我有一个工作实现,在 Base 空构造函数中使用 扫描每个可用的方法this.getClass().getMethods()
,过滤它们(必须有 Mark 注释,按顺序只接受 Foo 参数和 Bar 参数并返回 void,受保护)并将它们保存在aprivate List<Method> methods;
后来被 executeAll 用来调用每个方法。
最近我也读到了这个:https ://www.optaplanner.org/blog/2018/01/09/JavaReflectionButMuchFaster.html ...
...并且只是为了好玩实现了一个 MethodHandle 版本(我认为在我的用例中可能会更快),并计划制作一个 LambdaMetafactory 版本...但我真的对 javax.tools.JavaCompiler 很感兴趣解决方案。我仍在尝试弄清楚如何做到这一点...我保留了我原来的方法名称搜索和过滤,我只保留了名称...现在呢?如何将方法名称列表(我知道我可以访问,因为我从“this”调用并在子类中声明为受保护,并且还具有特定签名)转换为可用的东西,比如单个private final BiConsumer<Foo, Bar> callAll;
由 Base() 构造函数计算和保存,并由 executeAll 函数调用,如下所示:
当然,使用 BiConsumer 作为 callAll 的想法只是一个想法,如果有更好的东西我完全可以接受建议。
java - JavaCompiler - 生成的类无法访问生成的枚举
我正在生成类和枚举,生成的代码看起来不错。生成的枚举位于生成类的子包中。
我有一个类必须编译的 java 测试用例。所以为此我首先编译枚举。这工作正常。现在测试用例失败了,类的 setter 方法将枚举作为输入参数。
1) Enum-Weather 的示例代码:
2)一个类的示例代码-天气:
3)测试用例的示例代码:
请有任何建议。
java - 如何在资源中动态编译和运行带有 .class 文件的 .java 文件?
我试图让我的 Main 类在其控制台(eclipse)中打印出来自 Example1 类的输出(在资源/作为 .java 文件中),这取决于 Example2 类。我有这个想法是出于评分目的 - 在 javafx 应用程序中实现它,该应用程序在使用 FileChooser 找到的编译类文件上运行测试类(Example1)。我发现了有关使用 JavaCompiler 的信息,但我不知道如何使用它来编译依赖于 .class 文件的 .java 文件并执行它...
Example1 作为 .java 文件在resources/Example1.java
.
Example2 作为 .class 文件resources/Example2.class
java - 我在运行使用 javax.tools.JavaCompiler 编译的代码时遇到问题
我正在开发我的第一个 java 项目,即一个 TextEditor,它也可以编译和运行文件。编译器 (javax.tools.JavaCompiler) 工作正常,但是当我尝试运行“.class”文件时,什么也没有出现。我需要帮助。
以下是编译代码:
运行 .class 文件的代码:
java - 使用 JavaCompiler 和 URLClassLoader 编译和运行 Jade 代理
我找不到通过手动调用 JavaCompiler 来执行我的代理 JADE 类的方法。我正在尝试实现一个模拟器,我添加了一个导入功能,允许人们加载他们的 JADE 代理类,我会在模拟器上执行它们以提取数据。
这是导入代码:
这是正在编译的主要内容:
我尝试同时包含 JADE.rar 的路径和代理类的路径,但它仍然可以找到代理类,我收到以下错误:
我还将jade.rar 文件导入到我的项目的构建路径中。
java - Java 创建一个泛型类,该类实现另一个具有约束的泛型接口
要实现的接口:
具体实施:
意外的界限
这种模式在 Java 中是否可行?