问题标签 [illegalaccessexception]

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.

0 投票
0 回答
39 浏览

exception - NullPointerException 和 IllegalAccessException 的不同行为

我试图理解 JAVA 中的 throws 子句,我编写了以下
代码:

我知道它不会编译,因为必须
在主方法中处理异常,并且应该通过
为 IllegalAccessException 指定 throws 子句来定义 demo()。

但是当我将异常更改为 NullPointerException 时,相同的
程序会编译并执行:

0 投票
1 回答
168 浏览

java - 使用反射对流进行非法反射访问

我正在使用反射来调用 java.util.stream.Stream 上的方法,但是因为实际实现(ReferencePipeline 等)具有运行的实际代码,所以在调用时我会收到非法反射访问警告,如果method.setAccessible(true)没有该调用,它不会不工作。我想知道是否有一种方法可以自动将其委托给访问不非法的超级方法?也就是说,我想调用filter它在哪里是合法的,java.util.stream.Stream而不是在哪里,ReferencePipeline或者不管实现是什么。

编辑这是一些代码。target是通过反射获得的 Stream 的具体实例。

0 投票
1 回答
125 浏览

android - Android 6.0.1 谷歌地图异常 IllegalAccessError

我遇到了一个异常,但我不知道它的原因,但我只是明白这个错误发生在 android 6.0.1 和一些设备上,比如华硕平板电脑 P024。它有时会发生,我无法捕捉到它发生的模式。这意味着在使用我的应用程序时会突然随机发生异常。此链接已被检查但没有帮助:

Android 6 异常(谷歌地图?)

Android 谷歌地图致命异常

设备不是root。我使用的是谷歌地图Android SDK 11.6.2(也试过15.0.1)

谁能帮忙?

这些是错误日志:

0 投票
2 回答
23067 浏览

java - java.lang.IllegalAccessError:无法访问类,因为模块没有导出到未命名的模块

我目前正在尝试从 jdk-9.0.1 中成功提取 java.base.java.util.jar 包,从中构建一个 .jar 并将 jar 作为外部库导入另一个项目,以便我可以修改其中包含的类中的某些方法的行为。

我似乎成功地提取了包,因为我能够消除项目中所有可能的预编译错误并构建 .jar 工件。我也可以将此 .jar 作为外部库导入到我的其他项目中。

编辑:需要的 java.util.jar 外部的每个私有类(即:SharedSecrets)也被提取并放入 .jar

但是,当我尝试运行它(通过替换import java.util.jar.*;以使用我自己的版本)时,我收到此错误:java.lang.IllegalAccessError: class SharedSecrets (in unnamed module @0x2b546384) cannot access class jdk.internal.misc.Unsafe (in module java.base) because module java.base does not export jdk.internal.misc to unnamed module @0x2b546384

我尝试添加这个:--add-exports=java.base/jdk.internal.misc=ALL-UNNAMED并添加这个:--add-exports=java.base/jdk.internal.misc.Unsafe=ALL-UNNAMED到两者的编译选项,由提取的 java.util.jar 包组成的项目和我想将它作为外部库导入的项目,没有一个工作 - >错误仍然存​​在。

--add-exports编译选项中的所有其他内容在这两个项目上都可以正常工作。

我究竟做错了什么?为了让它工作,我必须改变什么?

注意:如果事情不清楚,请随时询问!

编辑:我尝试使用我自己的'java.util.jar'而不是官方的代码(注意目前两者是相同的,唯一的区别是一个保留在jdk中,而另一个只是“最小可行的产品')

这不是这个的重复,因为我(我已经指出)尝试了在另一个问题中建议的答案。--add-exports

错误发生在 4. 调用 JarFile 构造函数的行中,该构造函数不会调用 jdk 中的那个,而是我导入的自制库中的那个。

0 投票
1 回答
615 浏览

java - IllegalAccessError 到方法 copyOfRange Kotlin

当我尝试运行我的项目时遇到问题,情况是:

我已经从3.2.1 Stable --> 3.3 Stable更新了 Android Studio

我已经从1.2.71稳定版更新了 Kotlin 插件 --> 1.3.11稳定版

显然在更新之前项目同步正确,但现在它显示此错误:

我正在使用这个配置:

我不明白为什么会发生这种情况,我在互联网上搜索但没有任何帮助..

更新:

的输出dependencies

0 投票
1 回答
869 浏览

java - 在 Java 11 的编译选项中使用 --illegal-access=deny 时出现 Invalid flag 错误

我试图看看为什么我会收到“警告:发生了非法反射访问操作”我想在此之前摆脱那些警告我想检查它在我的代码中实际发生的位置。因为我读过

“对任何此类包的第一次反射访问操作会导致发出警告,但在那之后不会发出警告。这个单一警告描述了如何启用进一步的警告。这个警告​​不能被抑制。”

所以要得到进一步的警告

所以我在 IntelliJ 中提到了 --illegal-access=deny 和 --add-exports 选项。

然后我得到了 Error:java: error: invalid flag: --illegal-access=deny

这些是警告

0 投票
2 回答
83 浏览

error-handling - 代号一 - Form.initLaf 抛出随机“非法访问”错误

在我的应用程序中,我在看似随机的地点和时间收到“IllegalAccess”错误。唯一的共同点是堆栈跟踪:

标有 ** .. ** 的行是我的注释,因为这是引发错误的Form类的方法。无论是当我打开一个新表单、一个对话框(从 Form 继承)还是任何涉及创建新表单的东西时,都会随机出现这个问题。

我不知道如何调试它,因为似乎不是我的代码导致了这个问题。

调试甚至解决问题的任何提示?

编辑

该错误不仅限于创建表单,还可能在内部化对象时发生。请参阅堆栈跟踪:

编辑 2

通过对这个问题进行更多测试,到目前为止,我发现了一个模式。无论我创建哪种表单或对话框,都取决于我实例化它们的次数。在第 13 次我想实例化一个表单时(无论哪个屏幕),都会弹出这个错误。我不需要做任何事情,只需打开屏幕并返回即可。可以复制错误的相关代码被剪断:

0 投票
2 回答
112 浏览

java - IllegalAccessError 仅在 AsyncTask 内的 Android 9 上

IllegalAccessError 仅在 Android 9 上在 AsyncTask 函数期间发生

Android 9 有什么可做的吗?其他版本都OK。

该错误出现在生产应用程序上。

我已经尝试将所有内容公开,并且在同一个包中。此错误在版本 9 上仍然存在。

这是堆栈:

0 投票
1 回答
888 浏览

java - 升级到新计算机后所有程序出现 Java.Lang.IllegalAccessError

我昨天买了一台新电脑(Dell XPS 13)。我刚刚安装了 JDK 并将我所有的旧 Java 项目复制到我的新设备上,但是当我尝试运行这些程序中的任何一个时,我都会遇到非法访问错误。

编辑:注意:在升级之前我使用的是 jdk1.8.0_151。我现在正在使用 jdk-12.0.2。

我已经尝试重新编译某些项目中的所有类,但这没有帮助。请注意,非法访问错误仅在运行时发生。我看过其他关于非法访问错误的 stackoverflow 帖子,但他们的解决方案都不适合我。

编辑:该项目的项目层次结构是:

编辑:这是项目的主要类:

0 投票
2 回答
200 浏览

illegalaccessexception - 如何通过调用另一个类中对象的方法来打印while循环

运行应用程序时出现此错误:

线程“主”java.lang.IllegalAccessError 中的异常:WhileLoop 类试图访问字段 LoopClass.x(WhileLoop 位于加载程序 com.sun.tools.javac.launcher.Main$MemoryClassLoader @782663d3 的未命名模块中;LoopClass 位于未命名模块中WhileLoop.main(WhileLoop.java:11) 处的加载程序“应用程序”)

我想通过调用对象上的方法来打印 while 循环的内容。我该怎么做?