我在企业环境中工作,我们使用Java applet作为内部应用程序的一部分。 applet使用的Java类包含在我们用来开发的JDK中,但不包含在最终用户在其计算机上使用的JRE中。因此,每次加载小程序时,用户都似乎在从服务器请求该类。将库添加到JRE
有没有办法这个类的JRE“上加”?作为JAR还是其他?
我在企业环境中工作,我们使用Java applet作为内部应用程序的一部分。 applet使用的Java类包含在我们用来开发的JDK中,但不包含在最终用户在其计算机上使用的JRE中。因此,每次加载小程序时,用户都似乎在从服务器请求该类。将库添加到JRE
有没有办法这个类的JRE“上加”?作为JAR还是其他?
的JDK的来自不同供应商的公共API应该是相同的。所以要么你在谈论不同的版本,要么你正在使用JDK的“内部API”。
,以确保兼容性的最简单方法是依靠其他外部库中的“小”设置为一个开发环境,并增加了一切。通过这种方式,您可以将所需的所有东西作为applet的一部分(只需在一个fat-jar中重新打包所需的所有东西)即可。
如果您“控制”了用户群:只需运送“您的”JDK或将其他库装载到用户的JDK/JRE(https://docs.oracle.com/javase/tutorial/ext/basics/install.html)的ext目录中。
你不能到JRE从applet添加的东西,这违背了在沙箱中运行的applet的想法。
我想你已经把它与分机。谢谢! 具体而言,我们不打算使用小程序来写入JRE文件夹。我们希望将文件添加到JRE的某个位置,以便每次缓存过期时都不必加载它。这是一个数据转换的东西,不是特定于小程序。 – MarkDacek
但是,当把东西放在分机上时要小心。 如果其他人使用相同的库,但将其集成到不同的版本中,则可能冒着类加载器问题的风险。 – cbeutenmueller
我仍然会说:(重新)将它打包为applet的一部分可能是最安全的选择。 – cbeutenmueller
你可以把装在$ JRE/lib/ext目录的JAR文件的类。任何使用该JRE的Java应用程序都可以访问这些类。
读它,了解详情:https://docs.oracle.com/javase/tutorial/ext/basics/install.html
因此,每个小程序被加载时,用户似乎是从服务器请求的类。
外观可能具有欺骗性。即使文件在本地缓存,JRE也会报告从服务器下载的内容。这是出于安全原因。
用户如何获得jre?是通过公司吗? –
是的,它带有默认图像。不过,我们可以将文件和程序“推送”给用户。如果我们只是推送一个JAR到lib /文件夹,它会是合理的吗? – MarkDacek
好的,他们是否使用Eclipse或其他工具编写代码?我们使用eclipse,并且在eclipse初始化程序中,我只是确保用户具有jar文件...如果没有,请将它放置在那里......或者其他类似的东西。 –