Tag: 小程序

你可以签署一个Java applet但是把它保存在沙箱中(不能让它完全访问用户的计算机)?

由于Oracle的最新更改,我似乎必须签署一个applet,即使我不需要或希望它可以无限制地访问用户的计算机(这就是它当前未签名的原因)。 特别是,我不希望他们为已签名的applet显示警告: 此应用程序将以不受限制的访问方式运行,这可能会使您的计算机和个人信息面临风险。 ……这将吓唬使用它的人。 是否有可能签署一个小程序,但以某种方式标记它说“但继续使用沙箱”? 我签署它的唯一原因是从版本7更新40开始,Oracle进一步增加了用户在运行未签名的applet时必须处理的唠叨。 过去,您可以选中一个表示您信任applet一次的框,这将被记住。 从Update 40开始,它只记得该浏览器会话; 如果您关闭浏览器并稍后返回,则会再次出现警告。 他们还说他们将完全在Java插件的“未来版本”中禁用未签名的applet。

如何计算数组的中位数?

我正在尝试计算由文本字段接收的输入填充的数组的总数,平均值和中位数。 我已经设法计算出总数和均值,我只是无法得到中位数。 我认为在我能做到这一点之前需要对数组进行排序,但我不知道如何做到这一点。 这是问题,还是有另一个我没找到的? 这是我的代码: import java.applet.Applet; import java.awt.Graphics; import java.awt.*; import java.awt.event.*; public class whileloopq extends Applet implements ActionListener { Label label; TextField input; int num; int index; int[] numArray = new int[20]; int sum; int total; double avg; int median; public void init () { label = new Label(“Enter numbers”); input = new […]

无法使用Java 7u21启动applet

所以我们安装了Java 7u21版本,该版本应该会加强applet的安全性。 不幸的是,它收紧了很多,以至于我们的applet不再运行了。 不好。 有趣的是,它只在我们使用JWS操作时才停止工作。 如果我们从标准网页将其作为标准applet启动,一切正常。 在JWS模式下,我们至少会遇到reflection和java.lang.Thread.setDefaultUncaughtExceptionHandler安全问题。 证书看起来不错。 来自Oracle的发行说明没有提供与JWS相关的任何内容的大量输入。 因此,我对社区的问题是:是否有人有想法或(甚至更好)解决这个问题? 与给定建议/评论相关的其他信息: 这个小程序由全球数百个第三方客户运行,因此不幸的是,更改安全策略是不可取的。 该问题对于客户来说是可重现的。 但我可以确认更改策略文件可以解决问题。 当我从Eclipse启动的Tomcat运行applet时(因此当然没有签名的applet),它会按预期在浏览器中显示警告通知。 作为一个容易上当的人,我允许applet运行,因为它是从我自己的开发环境启动的。 这仍然会导致安全性失败。 我已经考虑过,如果这是Java中的错误,但我想看看是否有其他人看到同样的问题。 我想我们都知道Oracle修复bug的周转时间并不总是最好的…… 感谢您的任何意见。 非常感谢Tony,你的建议让我能够在7u21中创建applet,正确地说; 我认为这是一个向前的步骤,我正在通过浏览器签署和唤醒许多小程序,这些超过7u21。 我今天早些时候不想这样做。 但是我被困了好几个小时,事实上我还没有从我的遗留应用程序中唤醒我的第一个第三方applet(即在JVM 1.6或更老版本中工作正常)。 涉及的applet,我签了他们,但我总是得到错误:SecurityException – “Bad applet class name”。 我有一些applet和html代码调用它们,问题是我的第一个applet链(在调用链中没有任何其他)可能不像其他签名的applet那样正在做(这些applet来自java网站进行培训),这个第3方applet简单不运行并抛出上面提到的exception。 我的第三部分applet我不知道它在内部做了什么。 对不起,如果没有源代码,我可能会要求一个不易解决的特殊情况,但是,无论如何,请相信告诉我任何想法。 最好的祝福

我的Java Applet会在Chrome 45上运行吗?

我们开发的Web应用程序使用三个Java Applet。 我们知道Chrome 45会降低对NPAPI的支持。 在这个页面中,Oracle说Java插件依赖于NPAPI。 https://java.com/en/download/faq/chrome.xml 事实是我已经尝试使用chrome 43和44来​​执行我的Applet,默认情况下禁用NPAPI而不是Java插件并且它们正确执行,尽管窗口顶部出现了一些额外的警告消息,说Java插件将很快被禁用。 问题1 :如果Java插件依赖于NPAPI,为什么我的applet工作正常? 我不承认。 问题2: Chrome 45的Java插件是否在Chrome 45中不受支持,我的Applet是否可以在Chrome 45中运行?

删除默认JButton输入映射

我在java swing应用程序中删除组件上的默认输入映射信息时遇到了一些麻烦。 这就是我想要做的: //List of keys to remove public static final int[] OVERWRITTEN_KEYS = { VK_SPACE }; //Get default input maps InputMap[] im = { (InputMap)UIManager.get(“Button.focusInputMap”), (InputMap)UIManager.get(“ToggleButton.focusInputMap”), (InputMap)UIManager.get(“Slider.focusInputMap”), (InputMap)UIManager.get(“RadioButton.focusInputMap”), (InputMap)UIManager.get(“TextArea.focusInputMap”), (InputMap)UIManager.get(“TextField.focusInputMap”) }; //Loop through input maps for(int i = 0; i < im.length; i++) { //Loop through keys for(int j = 0; j < OVERWRITTEN_KEYS.length; […]

处理超链接右键单击JTextPane

我试图在我的程序中检测JTextPane中的超链接的右键单击。 这个问题在网上确实没什么。 有人能帮我吗? public class rchltest extends Applet { public void init() { JPanel panel = new JPanel(false); JEditorPane gentextp = new JTextPane(); JScrollPane scrollPane = new JScrollPane(gentextp); panel.add(scrollPane); scrollPane.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_ALWAYS); gentextp.setContentType(“text/html”); gentextp.setEditable(false); gentextp.addHyperlinkListener(new texthll()); gentextp.setPreferredSize( new Dimension( 500, 400 ) ); gentextp.setText(“Here is a hyperlink”); this.add( panel ); } } class texthll implements HyperlinkListener { […]

java.security.AccessControlException:拒绝访问(“java.security.SecurityPermission”“authProvider.SunMSCAPI”)

直到早上我的小程序中的一切正常。 我接受了Java更新,一切都停止了。 我正在使用applet处理数字证书。 这是我的堆栈跟踪。 我跟着一些oracle文章,但没有奏效。 https://blogs.oracle.com/java-platform-group/entry/liveconnect_changes_in_7u45 http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/manifest.html#trusted_library http:// www.oracle.com/technetwork/java/javase/7u45-relnotes-2016950.html Java Plug-in 10.45.2.18 Using JRE version 1.7.0_45-b18 Java HotSpot(TM) Client VM User home directory = C:\Users\vicky.thakor java.security.AccessControlException: access denied (“java.security.SecurityPermission” “authProvider.SunMSCAPI”) at java.security.AccessControlContext.checkPermission(Unknown Source) at java.security.AccessController.checkPermission(Unknown Source) at java.lang.SecurityManager.checkPermission(Unknown Source) at sun.plugin2.applet.AWTAppletSecurityManager.checkPermission(Unknown Source) at sun.security.mscapi.KeyStore.engineLoad(KeyStore.java:755) at sun.security.mscapi.KeyStore$MY.engineLoad(KeyStore.java:62) at java.security.KeyStore.load(Unknown Source) at SecurityApplet.initializeBrowserKeyStore(SecurityApplet.java:162) at SecurityApplet.isCertificateInstalled(SecurityApplet.java:268) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native […]

使用JRE 7u45运行applet时出现Permissions上的警告

我刚刚将JRE升级到7u45,我的applet在启动时收到一条警告消息,说“此应用程序将在未来的Java安全更新中被阻止,因为JAR文件清单不包含Permissions属性。” 然后我将以下两个属性添加到我的applet Jar文件的清单中(自签名): Permissions: all-permissions Codebase: * 但是警告信息并没有消失。 我怀疑自己错过了其他一些东西,但经过数小时的研究后却无法找到它们。 其他人都知道解决方案吗? 更新 使用有效证书签名的受信任的applet也无法运行。 黄色警告消息未显示,但显示另一个错误对话框,说明安全设置阻止了小程序,而在Java控制面板中更改安全级别或其他内容则没有帮助。

Java BasicStroke“模糊”

我正在尝试用Java编写一个简单的绘图applet,但是我遇到了BasicStroke 。 最初,我的计划是试图以某种方式画一条宽度的线,但API显然不支持这一点。 我尝试使用BasicStroke ,但结果只是一个模糊的混乱。 我该如何修复这个模糊问题? private void mousedrag_hook(Point point) { if(start == null) start = point; end = point; Graphics2D g2d = (Graphics2D)applInstance.buffer_g; g2d.setStroke(new BasicStroke(7)); //g2d.fillOval(point.x – 5, point.y – 5, 10, 10); g2d.drawLine(start.x, start.y, end.x, end.y); applInstance.repaint(); start = end; }

JAR文件中的Java Applet

我创建了一个java applet(.class文件)并用它创建了一个.jar并对.jar文件进行了数字签名。 现在我需要在Firefox中将.jar作为applet运行。 如何将html代码作为applet运行.jar文件? 我尝试过它不起作用,它试图获取.class文件,如何使用Internet Explorer和Firefox中的applet标记加载和运行我的applet作为.jar文件? 我在互联网上搜索,找不到答案。