问题标签 [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 - 无法使用 JavaCompiler 编译像 @Entity 这样的注解
我正在使用 JavaCompiler 在运行时编译 Java 代码。在大多数情况下,它运作良好。编译过程中没有异常,运行良好。我要求它编译一个带有 @Entity 注释的类。但是,我不断收到“第 3 行错误 - 预期类、接口或枚举”。
这是我的实体类:
这就是我使用 JavaCompiler 编译它的方式:
java - 尝试在运行时生成存储库时出现“未找到符号”问题
我正在尝试使用OpenHFT在运行时为 spring data jpa 生成一些存储库,以减少样板代码。问题是,当使用 IDEA 运行时它运行良好,但是如果我在外部 tomcat 或简单地在命令行中运行它:“mvn spring-boot:run”,它无法识别外部资源,例如@Resository
和一些书面类。
我已经努力找到问题但没有用,但是我为这个问题创建了最小的演示:github。我还尝试使用不同的类加载器作为 OpenHFT 编译器的参数,例如 .class、Repository.class 和 Thread.currentThread().getContextClassLoader()。但仍然以错误告终。
java - 系统上编译和运行java需要哪些文件
根据我的理解“Java Javac Libjvm.so 这三个文件是否足够”
还需要做 libjli.so
java - 在 Java 中使用服务器端编译时究竟会发生什么?
本文模糊地描述了-server 和-client。很多文章都涵盖了它,但我很好奇在 JVM 代码级别真正做了什么。
android - 如何解决“任务执行失败:app:compileDebugJavaWithJavac”这个错误?
我尝试了很多选择
- 将 jdk 路径从推荐路径更改为我的JDK文件夹的手动路径。
System.properties("java.home")
在 gradle 依赖项中添加。- 卸载jdk并重新安装。
- 无效并重新启动。
java_home=c\:\\program files\\...
在 gradle.properties 文件中添加了路径。
检查堆栈跟踪时我得到:could not find tools.jar: please check valid installation
错误
但他们都没有工作。我仍然收到此错误..从过去 4 天开始...
任何人都可以提出任何建议吗?
java - Kotlin 编译器或 Java 反编译器的奇怪行为
这个问题是由我的好奇心驱使的,所以我希望得到一个完整的答案,而不是简单的“是”或“否”。
让我们考虑这段代码:
当我在 AndroidStudio 中使用“显示 Kotlin 字节码”工具,然后单击“反编译”按钮时,我看到了这个 java 代码(我删除了一些不相关的东西):
在这里我们可以看到一些奇怪的代码:
1.
Java 要求super
call 是构造函数主体中的第一条语句。
2.
this((Function2)null.INSTANCE);
这对应于constructor() : this({ _, _ -> Unit })
什么null.INSTANCE
意思?为什么没有预期的匿名对象?
3.
方法上没有@Override
注释onScrolled
。override
用修饰符为方法添加注释是否太难了?但是存在@NonNull
和@Nullable
注释。
4.
Boolean
值被分配给int
变量?为什么这条线出现在这里?这个变量没有用处。为什么它声明一个不会被使用的变量?
5.
6.
为什么不让它变得更简单呢?
7.
如果我们知道,为什么它会IllegalStateException
转换?目的是什么?Throwable
IllegalStateException extends Throwable
这真的是在生产中执行的代码还是 Java Decompiler 无法弄清楚所有这些东西?
java - 如何在不使用 rejax api 的情况下在 java 中为 java 编程语言创建编译器部分扫描器?
如何在不使用 rejax API 的情况下在 java 中为 java 编程语言实现扫描仪。
android - Android 错误 Java 编译器:使用或覆盖已弃用的 API
编译时在 Android 中出现错误,它告诉我针对特定活动的以下错误:
它让我编译和执行项目,但我想知道错误是什么,因为它没有为该错误标记任何特定行。
进口:
应用程序:
我知道它说:使用或覆盖已弃用的 API。但我真的不知道如何确定这个 api 是什么,我不知道如何收集有关它的更多信息
java - 从运行时编译的类调用抽象类的重写方法时出现 AbstractMethodError
让我首先总结一下我到底想要做什么。基本上,我使用 JavaCompiler 包在运行时编译一个扩展我的超类“Player”的类。我唯一知道的是子类是它将扩展 Player 并覆盖抽象方法 calcMove()。为了在编译后在运行时加载类,我创建了一个 URIclassloader 对象来在类文件创建后加载它。问题是当我尝试从实例化对象运行 calcMove 方法时(通过使用 java.lang.reflect)
这基本上是我正在做的事情:
文件编译完成后,我使用此代码制作 uriclassloader 来加载类(上传文件夹包含源文件和类文件) className 由文件名确定。然后我使用 java Reflection 将类实例化为对象并将其转换为 Player:
实例化显然有效,直到我到达它调用 calcMove 的位置。我创建了一个新的“游戏”类,它接受 2 个玩家参数,在这个游戏类中,我从自定义类对象(转换为玩家)中调用 calcMove() 方法。但是我得到了一个 AbstractMethodError 异常,因为它试图从 Player 调用抽象 calcMove 方法,而不是从子类中调用实现的版本。
所以,我想知道,为什么它试图从父类调用抽象版本而不是我刚刚编译的类的版本,是否有某种原因?(据我所知,java 认为我创建的对象是子类的一种类型,而不仅仅是一个 Player 类,因为它是抽象的,所以我无论如何都无法实例化它)现在我正在使用 java Reflection 来强制它从对象调用 calcMove 函数
出于安全原因,我想避免在代码中此时使用反射。那么为什么这行得通,但是这个:
给我一个 AbstractClassError?