标签: applet

我可以做些什么来使jar /类变小?

我正在开发一个Java Applet,减少二进制代码的大小将使applet更快地打开并改善用户体验.

有什么办法可以减少类和/或jar文件的大小吗?我想确定我没有错过任何明显的技巧.

我知道在C++世界中,例如剥离调试符号的编译器选项可以产生巨大的差异,但我从来没有见过类似Java的东西.

java size applet jar java-web-start

13
推荐指数
3
解决办法
6494
查看次数

为什么Java告诉我我的applet包含有符号和无符号代码?

我的签名Java applet在Java更新19之前一直运行正常.现在Java Update 19上的一些但不是所有用户都报告了一条java安全消息,指出我们的applet包含有符号和无符号代码.

创建applet的过程如下:

  1. 在Netbeans IDE中清理并构建applet项目.
  2. 在WinRAR中打开Applet jar文件,并将所需的mysql JDBC驱动程序.class文件添加到jar文件中.
  3. 签署applet jar文件.

有人可以告诉我如何确定签署的代码以及我们的applet中没有签署的代码?有没有更好的方法将mysql JDBC驱动程序jar文件包含在我们的applet中,而不是将jar文件内容复制到我们的applet jar文件中?

谢谢

java security applet mixed-code

13
推荐指数
2
解决办法
1万
查看次数

如果jar文件>特定大小,Applet无法在Windows 7上加载Java 1.7

我们有一个相当复杂的签名小程序,自从我们几年前开发它以来一直很好用.在我们关心的所有操作系统/浏览器配置中,它可以在Java 1.5和1.6上运行良好.

它在Windows 7或Vista上的任何浏览器中都不适用于Java 1.7.我们已经看到它适用于Windows XP.此applet在Apache使用mod_proxy连接到Tomcat 6的站点中运行.

这些都是背景信息,因为我将问题简化为一个非常简单的未签名小程序:

package myapplet;
import java.applet.Applet;
import java.awt.Color;
import java.awt.Graphics;

public class MyApplet extends Applet {
    private static final long    serialVersionUID    = 1L;

    public void paint(Graphics g) {
        g.drawRect(0, 0, 250, 100);
        g.setColor(Color.blue);
        g.drawString("Look at me, I'm a Java Applet!", 10, 50);
    }
}
Run Code Online (Sandbox Code Playgroud)

如果将这个applet类放入一个jar文件中,另一个文件将jar文件的总(压缩)大小超过大约18KB,那么当由本地运行的Tomcat 6(或Apache 2.2)提供服务时,applet不会加载.

我通过向jar文件添加文本文件并更改文本文件的大小来玩.我通过在文本文件中添加一个字符来实现它从工作到不工作的程度.

查看带有跟踪的控制台日志,它正在尝试下载jar文件.这是我认为悬挂的主题:

"thread applet-com.bright.assetbank.clientsideedit.myapplet.MyApplet-1" prio=4 tid=0x048d8c00 nid=0x19b8 runnable [0x0700d000]
    java.lang.Thread.State: RUNNABLE
    at java.net.SocketInputStream.socketRead0(Native Method)
    at java.net.SocketInputStream.read(Unknown Source)
    at java.net.SocketInputStream.read(Unknown Source)
    at java.io.BufferedInputStream.read1(Unknown Source)
    at java.io.BufferedInputStream.read(Unknown Source)
    - …
Run Code Online (Sandbox Code Playgroud)

java applet jar windows-7 java-7

13
推荐指数
1
解决办法
7286
查看次数

从applet安全警告中删除"UNKNOWN"发布者

我正在尝试签署一个applet,以便发布者不会显示为" UNKNOWN ":

显示

我在一个组织工作,我们有自己的证书颁发机构,证书链如下:ORG Root CA> ORG Trusted Certification Authority> Yann39(me:D)

我申请了证书,他们为我提供了一个链接,让它进入浏览器.然后我导出它(从Firefox)以获取名为mystore.p12的PKCS#12文件.

然后我做了以下签署我的applet:

/* TO KNOW THE ALIAS */
c:\testrep>keytool -list -storetype pkcs12 -keystore mystore.p12
Enter keystore password:  ********

Keystore type: pkcs12
Keystore provider: SunJSSE

Your keystore contains 1 entry

id de yann39, Oct 24, 2012, keyEntry,
Certificate fingerprint (MD5): D7:E3:83:1D:C1:40:68:72:5F:A8:6F:AC:3A:EA:DD:47

/* CREATE FAKE CLASS FILE AND BUILD A JAR */
c:\testrep>echo test > test.class
c:\testrep>C:\oracle\dev10gr2\jdk\bin\jar cf0 …
Run Code Online (Sandbox Code Playgroud)

java ssl applet signing certificate

13
推荐指数
1
解决办法
4万
查看次数

Java 7u65的问题

昨晚发布了一个新的Java 7更新:7u65.我有一个Web应用程序,其中加载了一个服务小程序,并且在更新之后,我在不同PC上的测试没有显示问题也没有错误的行为.

后来,我开始收到与我的产品的Java服务小程序相关的问题报告.所有报告都来自将Java JRE更新为7u65(从7u60开始)的用户:

  • 小程序根本没有加载.应用程序启动时显示"正在加载"屏幕,但未显示.此外,我的Java小程序提供的所有服务都不可用.
  • 更改Java控制面板的高级配置以始终显示控制台(在发生此问题的PC之一)后,我发现applet甚至没有启动Java控制台.
  • 使用发生错误的同一站点,尝试访问java.com以检查当前的Java版本,加载Java applet并显示控制台而不会出现错误.

所有测试都是在清除浏览器和Java缓存之后执行的,甚至在删除已安装的证书之后(我的是有效的签名小程序).

我检查了Java 7u65发行说明,并且所提到的任何更改似乎都不会影响我的applet.此外,使用Java 7u60时没有任何问题.

我没有任何关于发生了什么的线索,也许是因为java更新是在几小时前发布的.由于即使我配置Java控制面板也无法显示Java控制台,我无法判断是否有任何异常.我无法在我的电脑中重现这个问题(Windows 8,也不是Windows 7,都是64位),但是在Windows 7 PC上已经报道了这个问题.

我的一位朋友告诉我,这似乎发生在使用Java 7u60的机器上,然后在没有卸载的情况下更新到Java 7u65.此外,这往往发生在较旧的操作系统(即:WinXP)中,这更自然.

我写这个问题是因为有些PC有这个问题似乎很奇怪,有些则没有.我想知道是否有其他人有这个问题,知道可能是什么原因,或者已经发现/应用任何解决方案.此外,如果我碰巧找到它,我想分享解决方案.

谢谢.


编辑:

外部引用,与同一Java版本(JRE)相关.

java applet signed-applet

13
推荐指数
3
解决办法
7664
查看次数

有谁知道gmail使用flash的原因是什么?

我发现Gmail.com使用Flash 很奇怪,因为Flash 在网络上被认为是糟糕的(在很多方面).

Gmail使用Flash的原因是什么?

为什么不使用Java Applet或Javascript实现该功能?

在此输入图像描述

javascript browser flash applet web

12
推荐指数
2
解决办法
1831
查看次数

正确处理重新加载并从AppletViewer重新启动

当我的applet第一次从干净的环境启动时,事情按照我期望的方式工作.我产生了两个线程,一个用于通用处理,一个用于图形.我从事件调度线程执行所有GUI操作调用.从appletviewer正确处理启动/停止,但不重启/重新加载.我drawCanvas在Applet的内容窗格中将Canvas称为唯一的Component,我使用双缓冲来绘制它.

我在这里观察问题:

public void start() {   
    /* ... some stuff  */
    executeOnEDTAndWait( 
        new Thread() {
            @Override 
            public void run() {
                /* ... more stuff ... */
                setupDrawCanvas();

                if( drawCanvas.isDisplayable() ) {
                    drawCanvas.createBufferStrategy(2); 
                    /* ... some more stuff */
                } else {
                    /* This is where it runs into difficulties */
                }
    /* ... */
Run Code Online (Sandbox Code Playgroud)

在哪里setupDrawCanvas定义如下:

private void setupDrawCanvas() {
    setVisible(false);
    setIgnoreRepaint(true);

    getContentPane().removeAll();

    drawCanvas = new Canvas();

    drawCanvas.setName("drawCanvas");
    drawCanvas.setSize(
    newDrawCanvasDimension.width, 
    newDrawCanvasDimension.height);
    drawCanvas.setIgnoreRepaint(true);

    getContentPane().add(drawCanvas);

    getContentPane().setVisible(true);
    drawCanvas.setVisible(true);
    setVisible(true);
} …
Run Code Online (Sandbox Code Playgroud)

java applet swing multithreading awt

12
推荐指数
1
解决办法
1663
查看次数

JApplet和Applet之间有什么区别,我应该使用哪个?

在我的书(我的计算机科学课程)中,他们有源代码片段.我们谈论的是图形编程和applet.我注意到在某些情况下他扩展了JApplet,而在其他情况下他使用了Applet.

我想知道差异是什么,以及它们将如何影响代码?

最近,我的任务是创建一个图形化的刽子手游戏,其中用户试图猜测计算机的单词.我应该使用JApplet还是Applet(我们大多使用JApplet,这就是为什么我倾向于这个,但我可以去任何一种方式).

此外,我想知道applet中的基本过程应该是什么,有些人确实将所有代码放在扩展JApplet或JFrame的单个文件中.我应该这样做吗?

java applet

12
推荐指数
1
解决办法
2万
查看次数

为什么java applets/javafx没有被广泛使用?(为什么我不应该将它们用于RIA)

Java是我们拥有的最佳托管运行时技术之一.它具有非常高性能的VM,可以实现接近C的性能.高质量的开源库的数量是任何其他平台无法比拟的.然而,尽管它是第一个出现在浏览器(Applet)中的动态客户端技术,但它现在还没有被广泛使用.Java的哪些缺点使得人们使用JavaScript + HTML5或Flash/Flex而不是Java来实现RIA?我为什么要使用它们尽管它们对Java程序员来说不是那么令人愉快?

java html5 applet javafx

12
推荐指数
2
解决办法
6906
查看次数

在框架内的Applet上绘制

我正在尝试创建一个Applet加载器,我需要在显示的Applet上绘制,但我似乎无法找到一种方法来做到这一点.

我最初的理解是Applet,通过扩展Component就像任何常规的java.awt.Component一样,可以在Container中添加,只有覆盖paint方法,但它似乎不起作用.

在我的初始化代码中,我创建了一个java.awt.Frame,我在其上添加了我的java.awt.Container的自定义实现,它覆盖了所有的paint方法,以便它们在x:5,y:5处填充rect,大小为w:10 ,h:10调用父方法后

但是,当添加小程序时,无论在所有内容之上绘制什么,它总是如此

public class AppletTest {

    public static void main(String[] args) {
        Frame frame = new Frame("Applet Test!");

        Container container = new Container() {

            @Override
            public void paint(Graphics g) {
                super.paint(g);
                g.fillRect(5, 5, 10, 10);
            }

            @Override
            public void paintAll(Graphics g) {
                super.paintAll(g);
                g.fillRect(5, 5, 10, 10);
            }

            @Override
            public void paintComponents(Graphics g) {
                super.paintComponents(g);
                g.fillRect(5, 5, 10, 10);
            }

            @Override
            public void print(Graphics g) {
                super.print(g);
                g.fillRect(5, 5, 10, 10);
            }

            @Override
            public void printComponents(Graphics g) …
Run Code Online (Sandbox Code Playgroud)

java applet swing awt

12
推荐指数
1
解决办法
728
查看次数