修改rt.jar可以吗?

Dan*_*Dan 3 java java-native-interface jar

我正在创建一个启动JVM的应用程序(使用JRE的副本).如果我编辑rt.jar,例如删除用户不应该访问的功能,它会以某种方式破坏JRE吗?

编辑:该应用程序涉及将代码下载到用户的计算机上,因此它将限制代码而不是用户.我可能应该澄清一下.

jpd*_*gle 8

你很有可能破坏在运行之前不会引起注意的事情.

但也许更重要的是许可问题:您的应用程序正在运送您自己允许的JRE版本,除非您无法根据J2SE许可证修改您正在分发的JRE :

[...](a)您将软件完整且未经修改地分发,并且仅作为您的小应用程序和应用程序("程序")的一部分捆绑,

"删除用户无法访问的功能"的含义也是值得怀疑的.您的应用程序正在用户帐户的上下文中执行,以及您从JRE中删除的任何功能:

  • 如果操作系统允许在该用户会话的上下文中执行该特定操作,那么还有另一种方法可以执行此操作 - 因此您在处理rt.jar之前处于相同的位置.您的用户只需拨打电话即可.

  • 如果操作系统不允许在用户会话的上下文中执行该操作,那么无论是否存在类,JVM都无法执行此操作,因此整个问题没有实际意义.

  • OpenJDK 怎么样?“开源性”是否涵盖重新分发 jre?我查看了许可协议,但似乎无法弄清楚。 (2认同)

Pet*_*rey 5

通常,删除功能的最佳方法是使用SecurityManager.这允许您控制可以访问的内容或可以执行的键操作.