JWS应用程序不响应Swing按钮操作

时间:2013-06-19 17:16:08

标签: java swing java-web-start

为什么我的JWS应用程序不响应Swing按钮操作?

我有一个我在eclipse中创建的程序。它收集有关连接到本地网络的设备的信息,并将其显示在JTable中。在环境中它执行得很好 beforeafter the start button is clicked

当尝试通过Java Web Start(JWS)启动它时,我按下Swing Gui上的按钮,它们不执行我创建的操作方法。它没有做任何事情。这是beforeafter

jar / jnlp文件是最新的,并在本地启动。什么可能导致这个?我该如何调试这样的东西?

1 个答案:

答案 0 :(得分:2)

  

当尝试通过Java Web Start(JWS)启动它时,我按下按钮   在Swing Gui上他们没有执行我创建的动作方法。   它没有做任何事情。

如StackOverflow中的java-web-start标记所述

  

默认情况下,类似applet的安全沙箱应用于代码   使用JWS启动

虽然,在您的代码中,您已经收集有关连接到本地网络的设备的信息。但是,由于您的代码在类似applet的安全沙箱中运行,因此它不允许它访问本地网络,当您通过eclipse将其作为桌面应用程序运行时,通常是允许的。因此,当单击Start Test按钮时,您的应用程序可能会抛出某种SecurityException,这是您无法预料的,​​因此会在后台使用。

<强>更新

  

为了放宽这个沙箱,代码需要通过数字签名   提供商,并受最终用户信任

这意味着要使您的代码执行那些无法执行的任务,您需要拥有jnlp / jar文件,该文件由您下载它的提供程序进行数字签名,而且您必须能够验证该文件仅从该站点接收并且未被修改。这是为了确保接收方不会运行某些可能损害其本地系统的恶意代码。请参阅Lesson: API and Tools Use for Secure Code and File Exchanges上的oracle教程。它说:

  

如果您以电子方式向某人发送重要文件(或   文件),或运行的applet或应用程序,收件人需要a   验证文档或代码来自您的方式,而不是   在传输中修改(例如,恶意用户拦截它)

有关该教程的更多信息。通过它。