我需要检查是否可以传递给JVM的某个选项是显式设置还是具有默认值.
更具体一点:
我需要创建一个具有比默认堆栈大更高的本机堆栈大小的特定线程,但是如果用户希望通过指定-Xss选项来自己处理这些事情,我想创建具有默认堆栈大小的所有线程(这将由用户在-Xss选项中指定).
我检查类,如java.lang.System和java.lang.Runtime,但这些都没有给我有关的信息-Xss.
有没有办法获得我需要的信息?
长话短说,我必须在运行时为特定测试设置一个环境。
这里的答案很好用,我正在使用这个。问题是我收到此警告:
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by **YOUR PACKAGE** (file: **YOUR FILE** ) to field java.util.Collections$UnmodifiableMap.m
WARNING: Please consider reporting this to the maintainers of **YOUR PACKAGE**
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
Run Code Online (Sandbox Code Playgroud)
我已经开始寻找解决方案,这里的另一个 SO 答案“解决”了单元测试的问题,使用相同的方法设置环境变量。
我正在谈论来自他们的 Github 源代码的这行代码,它触发了这个错误。( field.setAccessible(true);)
所以看起来除了设置给定的标志之外没有其他方法可以解决这个问题,就像警告所建议的那样。
然后我想知道这个警告是否严重,以及我的程序是否会在几个月内运行(我使用的是 OpenJDK 11)。事实证明,这个illegal-access …