部署具有第三方依赖项的 Java Web Applet

发布于 2024-09-08 08:56:06 字数 137 浏览 2 评论 0原文

我制作了一个Java Applet,它依赖于一些第三方库以及通过JNI调用的DLL。这些显然不会安装在客户端计算机上。无论如何,是否可以将这些第三方库和外部 DLL 打包到我的 Applet 的 JAR 中,以便任何安装了基本 Java 的客户端都可以运行它?

I have made a Java Applet that depends on some third party libriaries as well as a DLL that is called via JNI. These will obviously not be installed on clients computers. Is there anyway to package these third party libriaries and external DLLs within my Applet's JAR so that it can be run by any client with a base Java install?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

や三分注定 2024-09-15 08:56:06

在 Web 应用程序中使用 JNI 会让人胃痛,尤其是在 Windows 中。

  • 显然,您无法在 WAR 文件中部署 DLL,并且可能需要部署者事先运行单独的安装程序。
  • 您必须确保您的 java.library.path 设置正确,这通常是通过应用程序服务器中的设置而不是可在 WAR 文件中部署的内容来完成的。
  • 如果您尝试运行该 Web 应用程序的多个实例,JNI 将本机类与库链接的方式将导致类加载器头痛。解决此问题的一种方法是将包含的 JAR 文件移动到共享类加载器(如 Tomcat 的公共文件夹)中,但这有其自身的复杂性。

Using JNI within a web application is a recipe for heartburn, particularly in Windows.

  • You obviously can't deploy the DLL within your WAR file and will probably require a separate installer be run by the deployer beforehand.
  • You'll have to ensure that your java.library.path is setup correctly, which is usually done by settings in the application server rather than something deployable in the WAR file.
  • The way that JNI links the native class with the library will cause class loader headaches if you try to run more than one instance of that web application. One way to work around this is to move the containing JAR file into a shared class loader (like Tomcat's common folder) but that has its own complications.
北渚 2024-09-15 08:56:06

有没有办法打包这第三个
党图书馆

在 Eclipse 中,在 Java 项目属性下(右键单击),我可以执行以下操作:

 Export... => Export as Runnable JAR

然后我告诉它将我的 jar 依赖项打包到导出的 JAR 中。
导出的 JAR 会将其所有依赖项打包到其中。

替代文本 http://www.ubuntu-pics.de/bild/97131/ Selection_016_mg6IDm.png

Is there anyway to package these third
party libriaries

In Eclipse, under the Java project properties (right click), I can do a:

 Export... => Export as Runnable JAR

Then I tell it to pack my jar dependencies into that exported JAR.
The exported JAR will have all its dependencies packed into it.

alt text http://www.ubuntu-pics.de/bild/97131/selection_016_mg6IDm.png

紅太極 2024-09-15 08:56:06

我不是这个主题的专家,但是所有这些问题都有可行的解决方案。它们可能会让您头疼,但有些事情只能通过这种方式完成(我很确定您的 Entrust CSP 问题就是其中之一)。

您可以从 OpenSign 查看www.openoces.org/" rel="nofollow noreferrer">OpenOCES 项目。神奇的事情发生在 org.openoces.opensign.client.applet.bootstrap 中。

我也相信 JNLPAppletLauncher 解决了同样的问题,但我没有使用 i 的经验。

I am no expert on the topic, but there are working solutions to all these problems. They might give you a headache, but some things can only be done this ways (and I am quite sure that your problem with the Entrust CSP is one of those).

You can take a look at OpenSign from the OpenOCES-project. The magic happens in org.openoces.opensign.client.applet.bootstrap.

I also believe that JNLPAppletLauncher solves the same problem, but I have no experience with i.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文