【问题标题】:Adding Library to JRE将库添加到 JRE
【发布时间】:2015-07-03 06:14:45
【问题描述】:

我在企业环境中工作,我们使用 Java 小程序作为内部应用程序的一部分。小程序使用的 Java 类包含在我们用于开发的 JDK 中,但不包含在最终用户计算机上的 JRE 中。因此,每次加载小程序时,用户似乎都在向服务器请求该类。

有没有办法将这个类“添加”到 JRE 中?作为 JAR 还是其他形式?

【问题讨论】:

  • 用户如何获取jre?是通过公司吗?
  • 是的,它带有默认图像。不过,我们能够将文件和程序“推送”给用户。如果我们只是将 JAR 推送到 lib/ 文件夹,这是否合理?
  • 好的,他们是使用 Eclipse 还是其他工具编写代码?我们使用 eclipse 并且在 eclipse 初始化程序中,我会确保用户有 jar 文件...如果没有,请将它放在那里.. 或类似的东西。
  • 我说的是非开发人员。没有JDK但使用JRE的人。在浏览器应用程序中使用。

标签: java security jar applet


【解决方案1】:

来自不同供应商的 JDK 的公共 API 应该是相同的。所以要么你在谈论不同的版本,要么你正在使用 JDK 的“内部 API”。

确保兼容性的最简单方法是将“较小”集作为开发环境,并将其他所有内容添加为外部库。这样,您就可以将所需的内容作为 applet 的一部分发送(只需将所需的所有内容重新打包到一个 fat-jar 中)。

如果您“控制”了您的用户群:只需发布“您的”JDK 或在用户的 JDK/JRE (https://docs.oracle.com/javase/tutorial/ext/basics/install.html) 的 ext 目录中发布其他库。

您不能从小程序向 JRE 添加内容,这违背了小程序在沙箱中运行的想法。

【讨论】:

  • 我想你已经有了分机。谢谢!具体来说,我们不打算使用小程序写入 JRE 文件夹。我们想在某处向 JRE 添加一个文件,这样就不必在每次缓存过期时都加载它。这是一个数据转换的事情,不是特定于小程序的。
  • 在将东西放入分机时要小心。如果其他人使用相同的库,但将其集成到不同的版本中,您可能会面临类加载器问题。
  • 我还是会说:(重新)将其打包为小程序的一部分可能是最安全的选择。
【解决方案2】:

您可以将打包的类放在 $JRE/lib/ext 上的 JAR 文件中。任何使用该 JRE 的 Java 应用都可以访问这些类。

阅读它,了解更多详情:https://docs.oracle.com/javase/tutorial/ext/basics/install.html

【讨论】:

    【解决方案3】:

    因此,每次加载小程序时,用户似乎都在向服务器请求该类。

    外观可能具有欺骗性。即使文件在本地缓存,JRE 也会报告从服务器下载。这是出于安全原因。

    【讨论】:

      猜你喜欢
      • 2020-10-15
      • 2016-03-04
      • 1970-01-01
      • 2019-12-31
      • 1970-01-01
      • 2014-11-15
      • 1970-01-01
      • 2023-03-26
      • 2016-03-15
      相关资源
      最近更新 更多