我编译了我的applet,创建了一个jar文件,用keytool生成了一个密钥库db,用jarsigner签署了jar,并用keytool导出了公钥证书.
现在,当我在浏览器中运行我的applet时它确实有效,在提示我之后我是否确定要运行它.
问题是它在框中说"发布者:未知".无论如何我可以将它设置为我的别名,因为我编写了applet?
我一直在验证在mac osx的applet上运行的swing应用程序.
在此验证期间,我发现模式对话框存在以下问题:
所以我创建了一个小程序来显示问题.你能帮我理解这里有什么问题吗?
package com.macosx.tests;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.*;
public class DialogExample extends JApplet{
private static final long serialVersionUID = 1L;
private JPanel panel;
private JButton openDialogBtn;
private void doStart() {
panel = new JPanel();
panel.setPreferredSize(new Dimension(500,500));
openDialogBtn = new JButton("open dialog");
openDialogBtn.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent arg0) {
ModalDialog dialog = new ModalDialog(panel, true);
dialog.setVisible(true);
}
});
panel.add(openDialogBtn);
setContentPane(panel);
}
class ModalDialog extends JDialog {
private static final long serialVersionUID = …Run Code Online (Sandbox Code Playgroud) 我坐着有点问题.我正忙着为我们的支持团队创建一个php/html网站(内联网),以便在支持linux机器时让生活更轻松.
我有一个名为mindterm(免费版)的.jar应用程序,并希望将其作为网站中的applet运行.
但是根据他们的站点,你必须在将它作为applet加载之前签署.jar文件,否则它无法打开tcp连接.
所以我在我的时间里做了尽可能多的研究,并提出了JDK安装中提供的jarsigner.exe和keytool.exe文件.
但是,我不知道如何签署这个应用程序,以便我可以实际使用它.
有帮助吗?
谢谢
我想在网页上嵌入一个或多个JavaFX应用程序.你是怎样做的?
Oracle网站上有一些零碎的内容,但没有完整的例子.
有浏览器中的部署教程,包装基础知识教程等.有人提到Ant任务,有些没有.
所以在我阅读之后仍然有很多问题.我喜欢Ant吗?我需要创建一个applet吗?等等
所有我想看到的是一个最小和完整的"Hello World"示例,以便了解它是如何工作的.即使在StackOverflow这里也只是对同一个问题的答案的点点滴滴,所以这并没有真正帮助.
我昨天提出了这个问题,但删除了它,并认为我会尝试自己.事实证明,当你知道陷阱时,这很容易.因为这已经在这里被问到了,我想我会在答案中分享我的最小和完整的例子.
使用JavaFX示例只需几分钟即可为此html页面创建代码:

我正在尝试部署测试演示applet.applet的代码如下所示
import java.applet.Applet;
import java.awt.Graphics;
public class TestApplet extends Applet{
public void paint(Graphics gh){
gh.drawString("hello world", 300, 200);
}
}
Run Code Online (Sandbox Code Playgroud)
我还使用了包含在包含以下行的jar中的清单文件
权限:沙箱
应用程序名称:Applet演示
然后我使用jarsigner签署了jar ,其中包含来自thawte的可信证书的密钥库.Jarsigner还可以使用适当的证书链验证已签名的jar.我还在系统中安装了.p12(密钥库)文件
之后我尝试通过Chrome浏览器从本地服务器加载applet.以下是我的HTML代码
<html>
<Title>Applet Testing</Title>
<hr>
<applet code="TestApplet.class"
archive="SignedTestApplet.jar"
width="480" height="320">
<param name="Permissions" value="sandbox"/>
<param name="Application-Name" value="Applet Demo"/>
</applet>
<hr>
<html>
Run Code Online (Sandbox Code Playgroud)
按照上述所有步骤后,我得到以下弹出响应
您的安全设置已阻止应用程序运行过期或过期的java版本
我正在使用java 7更新60,如果我从Java控制面板将安全级别设置为中等,它可以工作,但我必须保持级别高.
我的程序有什么缺陷或应该做什么?
请建议我.
我自己签了一个java applet,所以当用户在浏览器中查看这个applet时,浏览器会显示一个无法验证的数字签名确认对话框.这一切都没问题,但是这个确认对话框中"Name:"属性(在"Publisher:"属性上方看到)的值被设置为我不记得在进行签名时设置的内容.
所以我的问题是,这个价值来自哪里,我该如何改变呢?
我已经准备好了一些小程序.我试着在Android平板电脑上运行它.它根本不起作用吗?我不确定?有谁知道这个?
或者是在android之后.Java不是平台独立的 - ;)
我在一家政府科学机构工作,通过我们的网站提供大量技术信息.Web开发并不是我们的强项,但我们顺便说一下.我们当前的许多内容都是通过Java applet提供的.最近我们得到了用户的反馈,他们无法访问网站的各个部分,因为他们的浏览器(主要是Safari和Firefox)由于安全问题而禁用了Java.当然,这可以通过升级和/或改变偏好来解决,但仍然会给非精明用户带来过高的障碍.
所以我的问题是Java applets的可能未来是什么?这种方法可能会变得不那么常见,并且不能/不会运行它们的浏览器配置比例会增加吗?正如我所提到的,我的组织(和我自己)不是网络开发专家,因此我们对趋势没有很好的认识.新内容是否应该用Java applet以外的东西编写(我们最近开发的内容使用JavaScript代替).我们是否应该计划将applet转换为响应不断减少的支持?
我有一个Java小程序,用于从用户的PC读取SD卡数据.小程序位于您登录的网站上.要登录网站,您必须使用浏览器证书.登录后,您将进入SD卡下载页面,applet初始化,读取卡片数据,并将其发送到页面上的某些JavaScript.
我现在遇到的问题是,在我的浏览器上安装Java 8后,applet无法加载.具体来说,它不适用于任何版本的IE(测试8,9,10和11).它在Firefox中运行良好.我还没试过Chrome.
我没有找到任何有类似问题的人.可能是因为它相对较新.有谁知道为什么会这样,并知道如何解决它?
IE8中的Java控制台中有一个看起来相关的堆栈跟踪.这是一些有趣的部分:
javax.net.ssl.SSLHandshakeException: Error signing certificate verify
...
Caused by: java.security.InvalidKeyException: No installed provider supports this key: com.sun.deploy.security.MSCryptoRSAPrivateKey
...
com.sun.deploy.net.FailedDownloadException: Unable to load resource: https://xdc-fqq02.example.com/cardtocloud/cardtocloud.jnlp
Run Code Online (Sandbox Code Playgroud)
编辑:这是另外一条信息.applet可以在与OpenSSL 1.0.1i不同的服务器上正常运行.该applet不适用于具有OpenSSL 1.0.0m的原始服务器.
这是完整的日志.堆栈跟踪不会出现在Firefox的日志中.
Java Plug-in 11.25.2.18
Using JRE version 1.8.0_25-b18 Java HotSpot(TM) Client VM
User home directory = C:\Users\codyj
----------------------------------------------------
c: clear console window
f: finalize objects on finalization queue
g: garbage collect
h: display this help message
l: dump classloader list
m: print memory usage
o: trigger logging
q: …Run Code Online (Sandbox Code Playgroud) 现在的情况
我们目前使用applet执行一些操作,然后重定向当前页面.在其核心中,您可以看到applet如下:
public class ExampleApplet extends Applet {
@Override
public void init() {
Button redirect = new Button("Redirect");
this.add(redirect);
final String target = this.getParameter("targetPage");
redirect.addActionListener((ActionEvent e) -> {
try {
getAppletContext().showDocument(new URL(target), "_parent");
} catch (MalformedURLException ex) {}
});
}
}
Run Code Online (Sandbox Code Playgroud)
以最简单的方式调用applet:
<applet code="com.example.applet.ExampleApplet.class" archive="${appletUrl}" width="100" height="30">
<param name="targetPage" value="http://localhost:8080/applet/"/>
</applet><br/><br/>
Run Code Online (Sandbox Code Playgroud)
其中${appletUrl}返回applet JAR的位置.
所以applet只不过是一个调用getAppletContext().showDocument(new URL(target), "_parent");刷新当前页面的简单按钮.这已经很长时间正确地完成了它的工作.现在这是问题所在.
移民
众所周知,Chrome不支持Applets.从那时起搁置一段时间IE并FireFox仍然支持他们.在2016年底,他们也将不再支持他们.所以我们决定使用JWS和迁移applet JNLP.
迁移此简单重定向按钮示例将提供以下html代码段和JNLP文件:
<a href="${jnlpUrl}">Launch JNLP</a> …Run Code Online (Sandbox Code Playgroud)