尝试让签名的小程序在浏览器中运行但惨败

2023-12-01

我创建了一个 JApplet,它使用两个外部库(JENA and JUNG)。当我从 IDE 运行小程序(使用 eclipse)时,它可以正常工作。我创建了一个 jar 文件,对其进行了签名(因为小程序需要从磁盘读取文本),创建了一个 HTML 页面来保存小程序,但是当我尝试在 Web 浏览器中运行它时,我收到了 java 安全警告对话框,当我按运行整个浏览器选项卡似乎挂起。

这是我写的 HTML 文件:

<html>
   <head>
      <title>Ontology Application</title>
   </head>
   <body>
      <applet code="assignment.Launcher.class" width="1000" height="800" archive="test.jar"></applet>
   </body>
</html>

Launcher类包含init、start、stop和destroy方法,项目中用到的所有类都存放在赋值包中。 test.jar 是签名的 jar 文件,它与 HTML 文件放在同一文件夹中。

我按照此线程中的步骤创建我的私钥/公钥、证书并对 jar 文件进行签名:如何签名和小程序(并使其发挥作用)

我有一个关于整个过程的问题清单,因为我不确定其中的几个步骤。

问题 1:我使用 eclipse 创建了 jar 文件(右键单击项目 -> 导出 -> JAR 文件)并保留默认设置。生成的 jar 文件是否包含我导入到项目中的引用库?如果答案是否定的,我如何在 jar 文件中包含引用的库?

问题 2:双击生成的 jar 文件是否应该运行?因为它不运行 (我认为它不起作用,因为没有指定主类,因为小程序没有主方法,但我需要纠正)

问题 3:由于我在小程序中使用外部库,我是否需要对所有导入的 jar 文件进行数字签名才能使小程序正常工作?或者签署主 jar 文件(包含我的类)就足够了?

问题 4:如果有一天我设法使小程序在浏览器中运行,那么每次应用程序尝试从磁盘读取文本时都会弹出 java 安全警告对话框吗?或者安全警告对话框仅在小程序加载时显示一次?

预先感谢,很抱歉在一个线程中提出大量问题,但它们与主题密切相关:)


  1. 你应该使用<PARAM NAME="archive" VALUE='applet.jar, external1.jar, external2.jar'>在 HTML 中的小程序声明中。您也可以尝试添加Class-Path给你的MANIFEST.MF主罐子的(参见here)
  2. 不可以,除非你有Main-Class在您指定的MANIFEST.MF
  3. 是的,以防外部 jar 执行一些安全敏感操作(例如读/写文件系统)
  4. No.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

尝试让签名的小程序在浏览器中运行但惨败 的相关文章

随机推荐

  • Apache POI 散点图创建

    Currently generating a scatterplot using POI however the chart comes out weird The topleft one is generated using my cod
  • CKAN 错误:服务器错误 500

    When I visit a page of a CKAN site I get an error Server Error with status 500 我该如何找出问题所在 我如何获得帮助 这个错误可能意味着很多事情 从技术上讲 服务
  • 如何调试 WebKit2GTK+ 扩展

    我正在尝试让 WebKit2GTK 扩展正常工作 这是一个简单的扩展 在创建页面时只会打印到控制台 这是我的项目结构 bin images include lib webextension libwebextension so libweb
  • 检查是否安装了VLC

    我从 C 应用程序调用 vlc 来播放视频 我需要一种方法来持续检查 VLC 是否已安装 我已尝试检查注册表项 但根据您的 Windows 版本或体系结构 它们似乎不一致或不可靠 有人有什么建议 建议吗 我想说你在尝试检测这一点时做了不必要
  • Javascript 点击事件触发两次,即使使用 stopPropagation

    我有一组这样的项目
  • 如何从 Gitlab CD 中的应用程序存储库链接部署脚本/存储库?

    假设您有 Repo A与通用应用程序 Repo B使用 Ansible 部署脚本 在 RepoA CI CD 运行程序中 我想从 Repo B 运行 Ansible 脚本 最好 最简单的方法是什么 我正在尝试的是仅为 RepoB 创建一个额
  • 跨多个 Windows 10 虚拟桌面的持久窗口?

    我有带有多个窗口的 C WPF 程序 我添加了对 Windows 10 桌面的支持 但用户希望在桌面之间移动时某些窗口保留在屏幕上 例如 如果在第一个桌面上打开窗口 A 并且他们翻转到第二个桌面 他们希望窗口 A 保留在新桌面上的相同位置
  • 在javascript中快速合并许多连续的多边形

    有谁知道合并数千个连续多边形的方法 我一直在我的原型中使用 turf 的 union 函数来执行此操作 但随着多边形列表的增加 所需的时间变得太慢 我希望 瞄准一个需要亚第二次的解决方案 我就是这样做的 const turfUnion re
  • 理解 Swift 中的单例

    我正在尝试在 SWIFT 中创建一个单例 这就是我到目前为止所做的 class Global class var sharedInstance Global struct singleton static let instance Glob
  • 每n个点求和

    我有一个向量 我需要对每个向量求和n数字并返回结果 这就是我目前计划做的方式 有更好的方法来做到这一点吗 v 1 100 n 10 sidx seq int from 1 to length v by n eidx c sidx 1 2 l
  • 忽略标准输入中的退格键

    我想制作一个程序 强制用户输入文本 但不允许他删除任何内容 在 C 中执行此操作的简单方法是什么 我唯一拥有的是 c getchar EOF c b 这是行不通的 有任何想法吗 POSIX unix 版本 include
  • ant 的 Findbugs 问题

    查找错误 findbugs Executing findbugs from ant task findbugs Running FindBugs findbugs java lang NoClassDefFoundError org apa
  • 通过 Excel VBA 连接 Citrix 上的 SAP

    我的机器上没有直接安装 SAP 并通过以下链接使用 SAP 窗口 https nedc ctx applications services axa tech intraxa Citrix AccessPlatform auth logged
  • 占位符在页面加载时打开 jQuery UI 自动完成组合框 (IE10)

    我正在使用 jQuery UI 自动完成组合框小部件 当我在组合框中添加占位符时 默认情况下会打开自动完成框 出现这种情况仅适用于 IE10 及更高版本 这是我的代码 create function this wrapper span ad
  • css 动画即使在不同时间开始,也会一起结束

    我有一些相同类型的元素 我希望它们共享相同的 css 动画 但我希望它们在不同的时间开始 结束动画 Codepen 为以下代码 html div class container div class box hidden div div di
  • 用户脚本 addEventListener 似乎没有附加到元素

    我正在尝试将 onclick 事件侦听器附加到现有元素 特别是不是button with a form 这是一个简单的div 通过用户脚本在网页上 然而 据我所知 即使在匿名函数中添加事件侦听器不应与现有用户脚本的超时规则发生冲突 它也不会
  • 如何使用 iOS 读取 CSV 文件

    我必须开发一个 iOS 应用程序 该应用程序可以从域上托管的 CSV 文件读取数据 是否有任何标准 API 可以帮助我做到这一点 我不需要下载 只需读取该文件 因为该文件每两分钟就会更新一次 我建议戴夫 德隆 s CHCSV解析器用于解析的
  • list2env(list, envir = .GlobalEnv) 中的错误:names(x) 必须是与 x 长度相同的字符向量

    在向每个 df 添加新列后 我尝试将数据帧列表取消列出到 R 环境中 我想为所有数据框保留相同的名称 我当前的代码 df list lt list CONCE84 dbf CONCE89 dbf CONCE92 dbf CONCE94 db
  • 从 DynamoDB 中删除大量项目的推荐方法是什么?

    我正在 DynamoDB 中编写一个简单的日志记录服务 我有一个由 user id 哈希值和时间戳 Unix epoch int 范围作为键的日志表 当该服务的用户终止其帐户时 我需要删除表中的所有项目 无论范围值如何 执行此类操作的推荐方
  • 尝试让签名的小程序在浏览器中运行但惨败

    我创建了一个 JApplet 它使用两个外部库 JENA and JUNG 当我从 IDE 运行小程序 使用 eclipse 时 它可以正常工作 我创建了一个 jar 文件 对其进行了签名 因为小程序需要从磁盘读取文本 创建了一个 HTML