当前位置: 首页 > 面试题库 >

为什么对OperatingSystemMxBean的访问限制为jre6 / lib / rt.jar?

宋伯寅
2023-03-14
问题内容

我在尝试在Eclipse中进行编译的某些Java代码遇到了一些麻烦。我不断收到以下警告…

Access restriction: The type OperatingSystemMXBean is not accessible due to restriction on required library C:\Program Files\Java\jre6\lib\rt.jar

从这行代码…

com.sun.management.OperatingSystemMXBean bean = (com.sun.management.OperatingSystemMXBean) java.lang.management.ManagementFactory.getOperatingSystemMXBean();

我已经找到解决方法,但是我担心限制警告。这段代码是针对我的开源项目(CfTracker)的,如果我要破坏某种许可协议,我不想解决此限制。谁能帮我理解这一点?


问题答案:

这不是许可协议的问题。只是Eclipse试图保护您避免使用不是正式JDK API一部分(而是Oracle / Sun JVM实现的一部分)的类。

是否有特定的原因需要对类进行强制转换(而不是使用“官方”接口java.lang.management.OperatingSystemMXBean)?

如果要确保在预期的MXBean不可用时应用程序继续运行,则可以添加一些try / catch逻辑来优雅地处理ClassCastException。



 类似资料:
  • 问题内容: 我正在尝试设置用于访问智能卡的PKCS11提供程序。我在系统上安装了PKCS11库,并遵循了《Java PKCS#11参考指南》中的说明 。在参考中,他们只是创建一个实例,并将配置文件的名称传递给构造函数。当我尝试编译以下代码时 我收到以下错误。 访问限制:由于必需的库/usr/lib/jvm/java-6-sun-1.6.0.24/jre/lib/ext/sunpkcs11.jar受

  • 问题内容: 我刚刚发现,运行日历脚本时,PHP中的时间戳限制为2038。这实际上是什么意思?为什么是2038,而不是2050或2039?如果时间戳仅是从给定日期(1970年)起算的秒数,为什么还要设置限制? 问题答案: 该限制是由大多数C库用来表示该计数的4字节带符号整数强加的。快速数学(假设365天年,并非完全正确): 这也意味着下限约为1900。一些库已经开始引入64位纪元计数,但目前它们之间

  • 当隐藏一个静态字段时,没有限制字段在子类中的访问级别,它甚至可以是非静态的和其他数据类型的。

  • 问题内容: 我试图在不重新创建存根的情况下编译由IBM的WSDL2Java在Java5上创建的Java 1.4代码,并在Eclipse中看到此错误。我的假设是,只要运行时jar可用(它们存在),生成的存根就应该编译。 完整的班级名称是 这到底是怎么回事?这是我要用香肠重构猪的情况吗?我最好重新创建存根吗? 问题答案: 还有另一个解决方案,也可以。 转到项目属性中的“ 构建路径”设置。 删除JRE系

  • 我在使用mllib RAnywhere Forest训练数据时出错。由于我的数据集很大,默认分区相对较小。所以抛出一个异常,指示“大小超过整数。MAX_VALUE”,原始堆栈跟踪如下, 15/04/16 14:13:03警告调度程序。TaskSetManager:在6.0阶段(TID 120,10.215.149.47)丢失了Task19.0:java。lang.IllegalArgumentEx

  • 在Class内部,可以有属性和方法,而外部代码可以通过直接调用实例变量的方法来操作数据,这样,就隐藏了内部的复杂逻辑。 但是,从前面Student类的定义来看,外部代码还是可以自由地修改一个实例的name、score属性: >>> bart = Student('Bart Simpson', 98) >>> bart.score 98 >>> bart.score = 59 >>> bart.sc