2011-06-27 56 views
1

我用Eclipse开发了一个applet java,它包含在MyPage.html中。我打电话给一个webservice并得到回应。它在Eclipse中工作。 Webservice与我的电脑不在同一台服务器上。所以我认为我必须签署我的小程序。我做了如何在浏览器中运行java applet?

keytool -genkey -keystore myStore -alias myAlias 
jarsigner -keystore myStore -signedjar sMyJar.jar MyJar.jar myAlias 
keytool -export -alias myAlias -file myCert.cer 

我得到了一个签名的jar文件,我把它放在文件夹lib中。我有一个类,Test.class,我的小程序,我把文件夹src。 我把这个代码在我的html页面:

<div> 
<applet codebase="src/" code="Test.class" height="80" width="300" 
hspace="10" vspace="10" name="Test" archive="lib/sMyJar.jar"></applet> 
</div> 

但我没有弹出应该问我是否要执行的小程序。即使我将请求的代码删除到web服务,并且我写了一个非常简单的代码,但它不会改变任何内容 - 除了代码有效(例如显示“hello world”)。

我见过类似的论坛问题:[http://stackoverflow.com/questions/908748/how-do-i-s-a-a-java-applet-for-use-in-a-browser ] [1]:他似乎有同样的问题,并修复它。他说:“问题在于我的jar文件没有按照我引用类文件的方式进行编译”。但我不知道如何改变这种情况,如果这是原因(我是Java中的初学者)。

我应该把Cert文件放在一个特定的文件夹中吗?

非常感谢您的帮助。

回答

0

当您使用archive参数时,codebase不引用未打包的类文件(浏览器不需要)的位置,而是引用归档的位置。问题是,你的HTML文件相对于JAR文件在哪里。例如,假设HTML文件位于父目录中。然后,你可以写这样的:

<applet codebase="lib/" code="Test.class" height="80" width="300" 
hspace="10" vspace="10" name="Test" archive="sMyJar.jar"></applet> 

另外,我知道你提到这是一个考验,但是我可以从硬盘的经验告诉你,这是一个非常糟糕的主意,使用默认包在Java中。我强烈建议你不要那样做。

+0

谢谢你是这个问题! –

+0

感谢您对默认软件包的建议 - 您绝对正确(我不知道在您告诉我之前是什么,现在我知道了,并且不会使用默认软件包)。 –

相关问题