发生了非法的反射访问操作,Java电报机器人。

3

我一直在使用这个来尝试使用Java运行Telegram机器人。我使用Gradle设置项目以使用依赖项。

我的项目层次结构如下:

.gradle
build
gradle
src
 -main
  -java
   -Main.java
   -MyAmazingBot.java
build.gradle
gradlew
gradlew.bat

这是我用来设置Gradle的指南。我使用Gradle Wrapper来运行构建。然而,我收到以下警告:
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.google.inject.internal.cglib.core.$ReflectUtils$1 (file:/C:/Users/addis/.gradle/caches/modules-2/files-2.1/com.google.inject/guice/4.1.0/eeb69005da379a10071aa4948c48d89250febb07/guice-4.1.0.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
WARNING: Please consider reporting this to the maintainers of com.google.inject.internal.cglib.core.$ReflectUtils$1
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

但是机器人运行正常(它将我的消息回显)。

1)这个消息应该引起担忧吗?

2)是否可以使用java -jar运行jar文件?我收到一条消息:no main manifest attribute, in .\build\libs\fsc2.jar

3)是否可以在不使用Gradle wrapper的情况下运行./gradlew run

1个回答

3

这似乎是Guice和Java 9之间不兼容的原因。请参见下面的问题链接。

目前还没有修复方法。

  • 这只是一个警告,
  • 在问题评论中有一种解决方法可以关闭所有这些非法访问警告。

问题链接:

我认为这里实际上不是Gradle的问题。看起来问题出在Telegram/Guice/Cglib。


1
警告似乎是 Guice/CGLIB 的问题,而不是 Gradle。 - Alan Bateman
是的,我找到了错误的问题。重新搜索后找到了正确的问题。 - Stephen C

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接