下载的时候肯定是以压缩的方式的 至于下载之后是否解压缩的话实际上和下载没有关系了,应该是和在本地加载其他jar的策略是一样的。applet重新下载的问题实际上和jre的设置有关系,在默认的情况下应该是在同一个session的话就不重新下载,你可以试验一下,关闭浏览器之后再打开,applet要重新下载的,当然你也可以打开java控制台来清空缓存,否则是不会重新下载的。getClass().getResource("aa.txt")方法来加载的话,相当于读取jar中的东西了url = new URL(getCodeBase(),"aa.txt")的话,每次都会去服务器上去取,而不会关心是否在cache中
------------- applet重新下载的问题实际上和jre的设置有关系,在默认的情况下应该是在同一个session的话就不重新下载 -------------- 这种种说法我不同意,应该是APPLET的重新下载是根据版本时间的新旧检查,如果版本时间一致就不再重新下载了,如果不一致,就另外再重新下载,这个应该和WEBSTART是一个做法的吧。另外;url = new URL(getCodeBase(),"aa.txt")的话,每次都会去服务器上去取,这里如果是txt文件的话,在缓存中就根本不会存在这个文件了,但如果是个jpg文件的话,缓存中就会有个图片文件,如果以这种方式读取服务端资源,客户端根本不去关心缓存的话,那这些文件又为何会下载到缓存中来了?我指的是JRE的高速缓存,不是指IE的缓存
java.security.AccessControlException: access denied (java.util.PropertyPermission entityExpansionLimit read)这个问题的解决方法是你要在本地机器的java jre 目录中java.policy设置jvm的访问权限了.// Standard extensions get all permissions by defaultgrant codeBase "file:${java.home}/lib/ext/*" { permission java.security.AllPermission; };// default permissions granted to all domainsgrant { // Allows any thread to stop itself using the java.lang.Thread.stop() // method that takes no argument. // Note that this permission is granted by default only to remain // backwards compatible. // It is strongly recommended that you either remove this permission // from this policy file or further restrict it to code sources // that you specify, because Thread.stop() is potentially unsafe. // See "http://java.sun.com/notes" for more information. permission java.lang.RuntimePermission "stopThread"; // allows anyone to listen on un-privileged ports permission java.net.SocketPermission "localhost:1024-", "listen"; // "standard" properies that can be read by anyone permission java.util.PropertyPermission "java.version", "read"; permission java.util.PropertyPermission "java.vendor", "read"; permission java.util.PropertyPermission "java.vendor.url", "read"; permission java.util.PropertyPermission "java.class.version", "read"; permission java.util.PropertyPermission "os.name", "read"; permission java.util.PropertyPermission "os.version", "read"; permission java.util.PropertyPermission "os.arch", "read"; permission java.util.PropertyPermission "file.separator", "read"; permission java.util.PropertyPermission "path.separator", "read"; permission java.util.PropertyPermission "line.separator", "read"; permission java.util.PropertyPermission "java.specification.version", "read"; permission java.util.PropertyPermission "java.specification.vendor", "read"; permission java.util.PropertyPermission "java.specification.name", "read"; permission java.util.PropertyPermission "java.vm.specification.version", "read"; permission java.util.PropertyPermission "java.vm.specification.vendor", "read"; permission java.util.PropertyPermission "java.vm.specification.name", "read"; permission java.util.PropertyPermission "java.vm.version", "read"; permission java.util.PropertyPermission "java.vm.vendor", "read"; permission java.util.PropertyPermission "java.vm.name", "read"; };
至于下载之后是否解压缩的话实际上和下载没有关系了,应该是和在本地加载其他jar的策略是一样的。applet重新下载的问题实际上和jre的设置有关系,在默认的情况下应该是在同一个session的话就不重新下载,你可以试验一下,关闭浏览器之后再打开,applet要重新下载的,当然你也可以打开java控制台来清空缓存,否则是不会重新下载的。getClass().getResource("aa.txt")方法来加载的话,相当于读取jar中的东西了url = new URL(getCodeBase(),"aa.txt")的话,每次都会去服务器上去取,而不会关心是否在cache中
applet重新下载的问题实际上和jre的设置有关系,在默认的情况下应该是在同一个session的话就不重新下载
--------------
这种种说法我不同意,应该是APPLET的重新下载是根据版本时间的新旧检查,如果版本时间一致就不再重新下载了,如果不一致,就另外再重新下载,这个应该和WEBSTART是一个做法的吧。另外;url = new URL(getCodeBase(),"aa.txt")的话,每次都会去服务器上去取,这里如果是txt文件的话,在缓存中就根本不会存在这个文件了,但如果是个jpg文件的话,缓存中就会有个图片文件,如果以这种方式读取服务端资源,客户端根本不去关心缓存的话,那这些文件又为何会下载到缓存中来了?我指的是JRE的高速缓存,不是指IE的缓存
用你的ie打开一个服务器上的applet,然后修改这个applet,看看ie会不会重新加载,和webstart是不一样的。第二个问题你也可以试一下
至少我遇到的是这样的这个是JRE控制的,和ie的cache应该没有关系
其实就是一个URLClassLoader
在一个APPLET的JAR包很大的时候,这个时候在客户端是要完全下载完这个JAR包才开始APPLET的,开始的时候要客户等很久,我想用APPLET的AppletStub方法,用一个小的APPLET来加载一个大的APPLET,这样就能够给个提示给用户,也能够让APPLET界面先启动起来,不要等太久。
这个时候,如果我把那个小的APPLET也放到JAR包里去,那肯定是和大包一起下载的,没有用。如果我是把那个小的APPLET放在包外的,这个时候确实是一下就启动了,但那个大包的下载却有问题了,报异常为:
java.security.AccessControlException: access denied (java.util.PropertyPermission entityExpansionLimit read)请问这个问题如何解决了?谢谢!
(我的这个JAR特别大,有2M多,第一次装载一般的网速要差不多两分钟,不关闭IE接着进入它,第二次进入的时间几乎不停顿,关机后重新进入,需要的时间大概30秒以内就可以了)真是有点搞糊涂了
在一个APPLET的JAR包很大的时候,这个时候在客户端是要完全下载完这个JAR包才开始APPLET的,开始的时候要客户等很久,我想用APPLET的AppletStub方法,用一个小的APPLET来加载一个大的APPLET,这样就能够给个提示给用户,也能够让APPLET界面先启动起来,不要等太久。
这个时候,如果我把那个小的APPLET也放到JAR包里去,那肯定是和大包一起下载的,没有用。如果我是把那个小的APPLET放在包外的,这个时候确实是一下就启动了,但那个大包的下载却有问题了,报异常为:
java.security.AccessControlException: access denied (java.util.PropertyPermission entityExpansionLimit read)请问这个问题如何解决了?谢谢!
permission java.security.AllPermission;
};// default permissions granted to all domainsgrant {
// Allows any thread to stop itself using the java.lang.Thread.stop()
// method that takes no argument.
// Note that this permission is granted by default only to remain
// backwards compatible.
// It is strongly recommended that you either remove this permission
// from this policy file or further restrict it to code sources
// that you specify, because Thread.stop() is potentially unsafe.
// See "http://java.sun.com/notes" for more information.
permission java.lang.RuntimePermission "stopThread"; // allows anyone to listen on un-privileged ports
permission java.net.SocketPermission "localhost:1024-", "listen"; // "standard" properies that can be read by anyone permission java.util.PropertyPermission "java.version", "read";
permission java.util.PropertyPermission "java.vendor", "read";
permission java.util.PropertyPermission "java.vendor.url", "read";
permission java.util.PropertyPermission "java.class.version", "read";
permission java.util.PropertyPermission "os.name", "read";
permission java.util.PropertyPermission "os.version", "read";
permission java.util.PropertyPermission "os.arch", "read";
permission java.util.PropertyPermission "file.separator", "read";
permission java.util.PropertyPermission "path.separator", "read";
permission java.util.PropertyPermission "line.separator", "read"; permission java.util.PropertyPermission "java.specification.version", "read";
permission java.util.PropertyPermission "java.specification.vendor", "read";
permission java.util.PropertyPermission "java.specification.name", "read"; permission java.util.PropertyPermission "java.vm.specification.version", "read";
permission java.util.PropertyPermission "java.vm.specification.vendor", "read";
permission java.util.PropertyPermission "java.vm.specification.name", "read";
permission java.util.PropertyPermission "java.vm.version", "read";
permission java.util.PropertyPermission "java.vm.vendor", "read";
permission java.util.PropertyPermission "java.vm.name", "read";
};
在一个APPLET的JAR包很大的时候,这个时候在客户端是要完全下载完这个JAR包才开始APPLET的,开始的时候要客户等很久,我想用APPLET的AppletStub方法,用一个小的APPLET来加载一个大的APPLET,这样就能够给个提示给用户,也能够让APPLET界面先启动起来,不要等太久。
这个时候,如果我把那个小的APPLET也放到JAR包里去,那肯定是和大包一起下载的,没有用。如果我是把那个小的APPLET放在包外的,这个时候确实是一下就启动了,但那个大包的下载却有问题了,报异常为:
java.security.AccessControlException: access denied (java.util.PropertyPermission entityExpansionLimit read)请问这个问题如何解决了?谢谢
在一个APPLET的JAR包很大的时候,这个时候在客户端是要完全下载完这个JAR包才开始APPLET的,开始的时候要客户等很久,我想用APPLET的AppletStub方法,用一个小的APPLET来加载一个大的APPLET,这样就能够给个提示给用户,也能够让APPLET界面先启动起来,不要等太久。
这个时候,如果我把那个小的APPLET也放到JAR包里去,那肯定是和大包一起下载的,没有用。如果我是把那个小的APPLET放在包外的,这个时候确实是一下就启动了,但那个大包的下载却有问题了,报异常为:
java.security.AccessControlException: access denied (java.util.PropertyPermission entityExpansionLimit read)请问这个问题如何解决了?谢谢