2010-01-05 102 views
0

我们有一个遗留程序,从Java 1.3移植到Java 1.5。这个应用程序涉及的小程序以前工作得很好。然而,移植后,applet将无法加载。但是没有错误或例外。该应用程序只会尝试永久加载它。我们试着用Java 1.6和poof来运行它!没有任何问题。 Java 6向后兼容吗?那么它将如何在该版本中运行,而不是在1.5版本中运行?applet不加载

====

Java控制台日志中的Java 1.5.0_19

basic: Registered modality listener 
basic: Registered modality listener 
basic: Registered modality listener 
liveconnect: Invoking JS method: document 
liveconnect: Invoking JS method: document 
liveconnect: Invoking JS method: document 
liveconnect: Invoking JS method: URL 
liveconnect: Invoking JS method: URL 
liveconnect: Invoking JS method: URL 
basic: Referencing classloader: [email protected], refcount=1 
basic: Referencing classloader: [email protected], refcount=2 
basic: Referencing classloader: [email protected], refcount=3 
basic: Added progress listener: [email protected] 
basic: Loading applet ... 
basic: Initializing applet ... 
basic: Starting applet ... 
basic: Added progress listener: [email protected] 
basic: Added progress listener: [email protected] 
basic: Loading applet ... 
basic: Initializing applet ... 
basic: Starting applet ... 
basic: Loading applet ... 
basic: Initializing applet ... 
basic: Starting applet ... 
basic: Referencing classloader: [email protected], refcount=4 
basic: Releasing classloader: [email protected], refcount=3 
basic: Referencing classloader: [email protected], refcount=4 
basic: Releasing classloader: [email protected], refcount=3 
basic: Referencing classloader: [email protected], refcount=4 
basic: Releasing classloader: [email protected], refcount=3 
network: Connecting <something>.jar with proxy=HTTP @ proxy/<ip address> 
basic: Loading <something>.jar from cache 
basic: No certificate info, this is unsigned JAR file. 
Left START init() 
Left END init() 
Right START init() 
Control start() Waiting for Left Panel to load... 
Right START start() 
network: Connecting socket://<ip address>:14444 with proxy=DIRECT 
Control start() Waiting for Left Panel to load... 
Control start() Waiting for Left Panel to load... 
Control start() Waiting for Left Panel to load... 
my HostName : <ip address> 
Thread-19 Check : 
Thread-19 Check : Monitor : run : start 
Thread-20 Monitor : Monitor: run() start 
Control start() Waiting for Left Panel to load... 
Control start() Waiting for Left Panel to load... 
Control start() Waiting for Left Panel to load... 
Control start() Waiting for Left Panel to load... 
Control start() Waiting for Left Panel to load... 
Control start() Waiting for Left Panel to load... 

的最后一条消息那张永远...现在用工作版本:

=== =

Java控制台日志中的Java 1.6.0_15

basic: Added progress listener: [email protected] 
basic: Added progress listener: [email protected] 
basic: Added progress listener: [email protected] 
network: CleanupThread used 6 us 
network: CleanupThread used 5 us 
network: CleanupThread used 6 us 
cache: Skip blacklist check as cached value is ok. 
network: Cache entry found [url: <something>.jar, version: null] 
network: Connecting <something>.jar with proxy=HTTP @ proxy/<ip address> 
network: ResponseCode for <something>.jar : 304 
network: Encoding for <something>.jar : null 
network: Disconnect connection to <something>.jar 
Reading certificates from 11 <something>.jar | <something>.idx 
network: No certificate info for unsigned JAR file: <something>.jar 
basic: Applet loaded. 
basic: Applet loaded. 
basic: Applet resized and added to parent container 
basic: Applet resized and added to parent container 
basic: PERF: AppletExecutionRunnable - applet.init() BEGIN ; jvmLaunch dt 330275 us, pluginInit dt 27768955 us, TotalTime: 28099230 us 
Right START init() 
basic: PERF: AppletExecutionRunnable - applet.init() BEGIN ; jvmLaunch dt 330275 us, pluginInit dt 27770563 us, TotalTime: 28100838 us 
Left START init() 
basic: Applet loaded. 
basic: Applet resized and added to parent container 
basic: PERF: AppletExecutionRunnable - applet.init() BEGIN ; jvmLaunch dt 330275 us, pluginInit dt 27779332 us, TotalTime: 28109607 us 
Left END init() 
basic: Applet initialized 
basic: Removed progress listener: [email protected] 
basic: Applet made visible 

就是这样。仍然没有弄清楚为什么它可以用java6而不是java5。


@valli:object标签中使用,而不是小程序

@thorbjorn:我试过了已经......它只是口口声声说装载的小程序...

@aaron:怎么能我知道它是什么例外,如果真的存在的话?是的,我们认为它是一个Java错误,但我还没有找到那个错误。我必须提交一份报告,明天,我已经冲刷净,但什么也没有作为的又想出了......

@all:谢谢您的答复

+1

如何给加载小程序的html代码? – Bozho 2010-01-05 09:09:25

+0

不能。我们不允许。在我们的合同中有一些...对不起。 – jcp 2010-01-05 10:10:55

+0

我添加了Java控制台日志如果这将有任何帮助。尽管我删除/更改了某些部分,如类名和目录 – jcp 2010-01-06 06:46:49

回答

0

有可能是一个例外的地方,但你不没有看到它(也许它被吞噬了)。或者它是Java 5版本中的一个bug,已在Java 6中修复。

0

一个可能的问题是,如果使用“applet”标记将applet嵌入到html页面中,则必须修改它以使用“对象“标签,因为”applet“标签已弃用。

+0

另请参阅http://java.sun.com/javase/6/docs/technotes/guides/plugin/developer_guide/using_tags.html#applet – trashgod 2010-01-05 17:59:14

0

启用Java控制台以及控制台中的所有跟踪/调试信息。

然后尝试重新加载你的小程序,看看它说什么。

0

Java 6向后兼容Java 5,但这只意味着在Java 5下工作的小程序也可以与Java 6一起使用。您的小程序适用于Java 6,该Java 6没有说明它是否可以与Java 5一起工作。在Java 6中明显的新功能的Java 5

下运行如果您的代码使用一些类,它是唯一的Java 6下可我希望看到ClassDefNotFoundErrorClassNotFoundException Java 5的那说下时不可用,你可能会在你的代码中的某处捕获并默默吞咽异常。寻找任何空的catch块或过于广泛的catch块(即捕获Exception或Throwable而不是更具体的东西)。如果代码是多线程的,请考虑将uncaught exception handlers添加到每个线程以记录任何问题。

除此之外,在(JDK 5)小程序查看器中启动小程序并附加调试程序以尝试查明问题的位置。

编辑:您是否用JDK5构建了小程序?这会突出显示任何兼容性问题。如果您使用JDK 6构建,至少将编译器设置为生成Java 5字节码。但最好还是针对JDK 5类(通过使用JDK 5或通过在JDK 6中使用-bootclasspath选项)来构建,以便您可以查看是否使用了不在其中的任何内容。

+0

我们使用JDK5构建小程序。 我试着运行使用Java 5和Java 6的小程序...在Java控制台中的日志是不同的,所以也许这是真的在版本中的问题?无论如何,我会尝试你的建议。谢谢 :) – jcp 2010-01-06 01:30:35

相关问题