问题标签 [ecj]
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.
jsp - 如何解决没有可用于配置选项的 Java 编译器 compilerClassName: [null] and compiler: [null]
我有一个启动 spring boot Hello World 程序,它抛出以下错误:
No Java compiler available for configuration options compilerClassName: [null] and compiler: [null]
我的问题仅在 Mac 中,而不在 Windows PC 中。在我的 Mac 上,我尝试使用 Eclipse 和 IntelliJ IDEA CE。我在这里看过这两个帖子:
如何解决 java.lang.IllegalStateException:没有可用于配置选项的 Java 编译器 compilerClassName
没有可用于配置选项的 Java 编译器 compilerClassName: [null] and compiler: [null]
但是这些解决方案对我不起作用。
我在这里发布我的代码:pom.xml
控制器:
配置:
Jsp页面:
最后是我的application.properties:
我也尝试将 jsp 文件移动到/WEB-INF/
而不是/WEB-INF/jsp
.
任何指针将不胜感激。谢谢。
java - 如何使用 Java 10、Ant 和 Eclipse 编译器编译这段代码?
我正在尝试使用 Java 10、Ant 和 Eclipse 编译器编译这个简单的代码:
这是我正在使用的 Ant 文件:
如果我使用 javac(compile-javac 目标),代码编译得很好,但我无法让它与 4.7.3a 或 4.8RC2 Eclipse 编译器一起工作:
- 使用 4.7.3a,我得到错误参数化类型仅在源级别为 1.5 或更高时才可用,即使我指定
release="10"
- 在 4.7.3a 中,如果我使用
source="10" and target="10"
而不是release="10"
,则源级错误消失但我得到一个无效的模块名称:javax.xml.bind错误 - 使用 4.8RC2,我得到源代码级别错误,并且另一个JAXBException 无法解析为类型错误,即使我指定我想添加定义 JAXBException 的 java.xml.bind 模块。
print-version-info 目标提供以下输出:
可能是ecj bug 487421的后续行动,还是我只是不理解命令行选项?
java - 为什么eclipse java编译器(ecj)不能编译这个?
我有以下代码:
此代码在使用 javac 1.8.0_101 编译时工作正常,并按预期生成数字 0 到 9。
但是当我在 Eclipse 中使用这段代码时,它告诉我o.i
:
并在执行此操作时产生错误:
为什么我需要使用 javac 来编译这段代码?
以及如何让日食表现?
编辑:
我做了一些测试,只要我不在 lambda 中创建实例,它就可以在 ecj 中工作:
java - ECJ 因 IllegalArgumentException 处理 log4j 注释而失败
我在我的项目中使用 log4j 2.11.1 并使用 @Plugin 注释创建了一些自定义附加程序和配置工厂。
这在 Eclipse 4.9 和 IntelliJ 中编译得很好,没有错误。但是,运行 Eclipse 批处理编译器时,相同的代码会失败并出现 IllegalArgumentException:
在这个 repo中,我做了一个最小的项目来重现这个问题。我尝试使用 ECJ 的 4.7 和 4.9 版本,并尝试使用 Java 8 OpenJDK 和 Oracle,所有这些都在 Ubuntu 18.04 机器上。
关于这里可能发生什么的任何线索?
编辑: 尝试在 OSX 机器上使用 Java10 并出现相同的错误。
ecj - ECJ 中的自适应参数
我将在 Eclipse 中使用 ecj 进行自适应 ec例如 ga,并且我需要在执行期间更改参数的值,例如突变概率,(我仍然在 .params 文件中定义了一个值,但需要在执行期间更新)我不不知道该怎么做!谁能帮忙
java - eclipse如何生成带有编译错误的.class文件?
我在eclipse中有一个动态的web项目,要构建我们通常右键单击项目>导出为>war文件。然后,我们将 war 文件部署到 websphere 服务器。该项目有未解决的依赖关系(稍后我们部署到服务器时解决),因此 Eclipse UI 中存在编译错误,但仍然生成 .class 文件,Eclipse 将创建一个可用的 WAR 文件。
使用其他问题的指导(此处和此处)我尝试使用 Eclipse 编译器(ECJ)将带有编译错误的 .java 文件部分编译为 .class 文件,但使用命令行生成的文件仅输出编译错误消息进入 .class 文件,而不是像 eclipse UI 生成的实际可执行字节码。
这是我正在运行的代码:
项目中唯一存在的编译错误与“无法解析导入***”有关。有没有办法在命令行上生成这些 .class 文件,就像使用 eclipse UI 时自动生成它们一样?
java - 尝试打印 JAVA8 收集器的结果时出现歧义错误
尝试打印 JAVA8 收集器的结果时出现歧义错误。
我正在尝试打印Product
对象中 ID 总和的结果,但出现以下错误:
“方法 println(double) 对于 PrintStream 类型不明确”
这是我收到编译错误的一小行代码:
编辑:添加代码片段以获取更多详细信息:
- Product.java 域类。
包 com.sample.reproduce.bugs;
- 我收到编译错误的 Main.java 类:
以下是我收到编译错误的代码行:
类快照:
如果我将在单独的行中使用 Collector(方法外),我不会收到任何错误println
。
如果我们在方法中使用它,为什么编译器无法检测到 JAVA 8 收集器的确切返回类型println()
?
使用命令提示符添加另一种方法的详细信息:
我尝试使用相同 JDK 版本的命令提示符,程序已成功编译并执行。所以霍尔格的回答似乎是正确的。这似乎只与 Eclipse 编译器有关:
lambda - 在 Termux 上使用 ecj 编译失败 lambda 表达式
在 Termux 上使用 ecj 编译会产生以下错误消息:
Lambda 表达式仅允许在源级别 1.8 或更高版本中使用。
运行该工具时未指定任何选项。
使用 switch - 1.8 编译会产生以下输出:
重复合规性设置规范:-1.8
Composite2 是我的源代码所在的目录。
接下来我尝试了以下操作:
合规级别“1.7”与源级别“1.8”不兼容。要求合规级别为“1.8”或更高。
来源可在此处获得
我缺少任何设置或开关吗?我不熟悉使用 ecj 作为编译器。
你能帮我吗?
似乎有诸如 Retro Lambda 和反向移植之类的解决方案可以使 Java 8 源代码在 7 或更早版本上工作。不过,我还没有尝试过。一个人能查到的就这么多。(有关说明,请参阅下面的评论)。
一种解决方法可能是在 Termux 上安装 Arch Linux。. 不过,命令提示符可能有点错误。
然后,您可以使用包管理器 pacman 安装 Open JDK 8 和 eclipseecj。
那行得通;ecj 现在编译 1.8 代码。
我希望避免安装完整的 JDK,因为它会引入冗余并占用额外的空间。
java-8 - 在 Java 8 上将规则名称作为类编译流口水规则(v5.0.1)时出现奇怪的 java.lang.ClassNotFoundException
试图让流口水运行 java8 jvm(从 Java6 升级)。然而,编译失败了,目标进一步推进。
做了一些有帮助的事情: Ecj 编译器:更新为 'org.eclipse.jdt.core.compiler:ecj:4.5.1' Mvel:使用更新的 mvel2-2.1.3.Final.jar
此外,添加 org.codehaus.janino:janino:jar:2.5.16 来编译依赖项以按照此https://copyrightdev.tumblr.com/post/146315831773/getting-drools-5x-to-operate-使用 janino 编译器Smooth-with-java-8博客。
但是,我认为这个当前的错误很奇怪,因为不能有一个名为“ItemManagement.Rule_mobile_Bundle_MOBILE_500MB_0ConsequenceInvoker”的类。查看 ItemManagement.drl 文件,这类似于以下规则名称:
规则'mobile Bundle MOBILE 500MB'
错误消息很奇怪,因为它需要一个名为规则的类。有人有节省时间的指针吗???感谢任何帮助。
java - 致命错误编译:无法运行 ecj 编译器:无法识别的选项:--module-version
尝试运行以下组合:
- Maven (3.6.1)
- 开放JDK 11
- 使用 module-info.java
曾尝试添加空白的compilerArgs 节点,但无济于事。
删除 module-info.java 解决了这个问题,但这不是我想要的。
另外,查看了源http://central.maven.org/maven2/org/apache/maven/plugins/maven-compiler-plugin/3.8.1/
特别是在 CompilerMojo.java 的来源:
module-version 总是被添加,所以似乎没有办法抑制它:
查看 ecj 的文档,没有“模块版本”参数
所以现在看来它是行不通的!?
Maven插件部分: