我有一个java applet,我正在从unsigned分发转换为signed。签名版似乎启动速度较慢,在调查此问题时,减速是与我的Web服务器的一系列连接,在未签名时速度很快,但在applet签名时速度很慢。我一直在努力争取这个,因为我无法弄清楚为什么它首先建立连接,更不用说如何禁用这种行为。我也不清楚是什么创建了这些类,并且搜索涉及“Customizer”的java事情一直没有效果。
以下是java控制台的相关输出(有一点明显的审查):
基本:Applet已加载。
basic:小程序调整大小并添加到父容器
basic:PERF:AppletExecutionRunnable - applet.init()BEGIN; jvmLaunch dt 279063 us,pluginInit dt 1299510 us,TotalTime:1578573 us
network:找不到缓存条目[url:MYHOSTURL / games / java / lang / ObjectCustomizer.class,version:null]
network:使用proxy = DIRECT连接MYHOSTURL / games / java / lang / ObjectCustomizer.class 网络:连接MYHOSTURL:80 /与proxy = DIRECT
网络:连接MYHOSTURL / games / java / lang / ObjectCustomizer.class与cookie“STUFF”
network:找到缓存条目[url:MYHOSTURL / games / UnitValueCustomizer.class,version:null] prevalidated = false / 0
cache:添加MemoryCache条目:MYHOSTURL / games / UnitValueCustomizer.class
cache:资源MYHOSTURL / games / UnitValueCustomizer.class已过期 network:使用proxy = DIRECT连接MYHOSTURL / games / UnitValueCustomizer.class 网络:连接MYHOSTURL:80 /与proxy = DIRECT
network:将MYHOSTURL / games / UnitValueCustomizer.class与cookie“STUFF”连接起来 network:使用proxy = DIRECT连接MYHOSTURL / games / UnitValueCustomizer.class 网络:连接MYHOSTURL:80 /与proxy = DIRECT
network:将MYHOSTURL / games / UnitValueCustomizer.class与cookie“STUFF”连接起来 cache:资源MYHOSTURL / games / UnitValueCustomizer.class已过期 network:使用proxy = DIRECT连接MYHOSTURL / games / UnitValueCustomizer.class 网络:连接MYHOSTURL:80 /与proxy = DIRECT
network:将MYHOSTURL / games / UnitValueCustomizer.class与cookie“STUFF”连接起来 network:使用proxy = DIRECT连接MYHOSTURL / games / UnitValueCustomizer.class 网络:连接MYHOSTURL:80 /与proxy = DIRECT
network:将MYHOSTURL / games / UnitValueCustomizer.class与cookie“STUFF”连接起来 network:找不到缓存条目[url:MYHOSTURL / games / java / lang / ObjectCustomizer.class,version:null]
network:使用proxy = DIRECT连接MYHOSTURL / games / java / lang / ObjectCustomizer.class 网络:连接MYHOSTURL:80 /与proxy = DIRECT
网络:连接MYHOSTURL / games / java / lang / ObjectCustomizer.class与cookie“STUFF”
network:找不到缓存条目[url:MYHOSTURL / games / BoundSizeCustomizer.class,version:null]
network:使用proxy = DIRECT连接MYHOSTURL / games / BoundSizeCustomizer.class 网络:连接MYHOSTURL:80 /与proxy = DIRECT
network:将MYHOSTURL / games / BoundSizeCustomizer.class连接到cookie“STUFF”
network:找不到缓存条目[url:MYHOSTURL / games / BoundSizeCustomizer.class,version:null]
network:使用proxy = DIRECT连接MYHOSTURL / games / BoundSizeCustomizer.class 网络:连接MYHOSTURL:80 /与proxy = DIRECT
network:将MYHOSTURL / games / BoundSizeCustomizer.class连接到cookie“STUFF”
网络:连接MYHOSTURL:3000 /与proxy = DIRECT
我的程序的第一个输出
(注意:找到的UnitValueCustomizer缓存条目是我放在Web服务器上的垃圾文件,只是为了看看会发生什么 - 尽管下载了垃圾而不是类,但一切都正常运行。)
列出的类(也不是“Customizer”一词)不会出现在应用程序的java源代码中,也不会出现在编译中生成的.class或.jar文件中。没有“Customizer”的类名来自Miglayout。
因此欢迎任何关于如何以任何方式摆脱这种情况的提示,包括但不限于:
如何告诉VM不要在提供的applet之外寻找任何内容.jar
什么语言功能产生这些幻像类&如何避免
有关此类加载机制或其所谓的
答案 0 :(得分:0)
如何告诉VM不要在提供的applet .jar
之外寻找任何内容
这需要Special Attributes of Applets中提到的codebase_lookup
参数。
E.G。
<APPLET ...>
<PARAM name="codebase_lookup" value="false">
</APPLET>
问题2和3.可以得到最佳答案,因为JVM的一个功能可以通过codebase_lookup
参数进行配置。以任一方式加载的类加载器完全相同URLClassLoader
,但只配置了不同的类路径。
codebase_lookup: false
仅包含archive
属性中定义的Jars。codebase_lookup: true
(默认情况下,如果未指定)不仅包括archive
属性中定义的Jars,还包括applet codebase
本身 - 用于搜索不在Jar中的资源。