【发布时间】:2011-10-07 04:36:08
【问题描述】:
我有一个基于应用程序的 JApplet。我需要它读取包含所有数据的基于文本的文件。所以我把它放在了 Jar 文件中,AppletViewer 中的一切都变得很开心。
不幸的是,在浏览器领域并非一切都令人满意。
当我尝试从不在 jar 中的 html 页面在浏览器中运行小程序时,我得到了旧的:java.security.AccessControlException: access denied (java.io.FilePermission
(然后它会列出 jar 在我的文件系统上的位置和 !resource 地址)
但是,如果我在诸如 winzip 之类的 zip 提取器/查看器中打开 jar 文件并打开启动小程序的页面(我放在 jar 中),它就可以正常工作。正如预期的那样,它只能访问具有相同主机的资源,在这种情况下似乎直接归结为 jar 文件本身。
所以我的问题是 WTF?我可以从浏览器打开 jar 文件中的 html 文件吗...即使在 iframe 中或任何东西都可以,只要它不会进一步弄乱权限。
或者我可以从 jar 外部的 html 页面调用小程序吗?我现在没有使用 JNLP,因为我想尽快拼凑出一个原型小程序。
<applet code = 'CatalogApplet'
archive = 'ContactCatalog.jar',
width = 1000,
height = 800 />
是对小程序的整个 HTML 调用。
我不打算签名,因为它真的不需要签名。我只是想打回罐子。
【问题讨论】:
-
你的问题没有任何意义。 HTML 文件告诉浏览器有关 JAR 文件的信息,而不是相反。你的意思是你不能从你的applet 访问JAR 文件中的一些other 资源吗?请澄清您的问题。
-
我想要一种从 jar 中、从浏览器而不是从任何 java 代码中运行 html 的方法。我不知道为什么,但我似乎永远无法获得一个不为空的 AppletContext,所以我不得不求助于奇怪的东西来将文本或图像加载到小程序中。这恰好是一个非常奇怪的工作。
-
这一切都毫无意义。浏览器看不到 JAR 中的 HTML 文件。它所能做的就是执行一个 JAR 中的小程序。如果“根本没有 Java 代码”,则没有小程序,因此也没有 AppletContext。这还没有任何意义。
标签: java html jar applet appletviewer