将Java Applet嵌入.html文件中

7

我在将我的小程序嵌入网页时遇到了麻烦。我认为我没有正确地进行操作。

* 我的html文件与.class文件在同一目录下

我的主方法在CardApp类中

这是我的html代码

<html>
<head>
<meta content="text/html; charset=ISO-8859-1"
http-equiv="content-type">
<title>TestJCardBet.html</title>
</head>
<body>
<applet codebase="" code="CardApp.class" height="400" width="500"></applet>
</body>
</html>

顺便提一下,请在发布此类问题之前使用谷歌搜索。 - Camilo Martin
2
我确实使用了谷歌,这就是我想出这段代码的原因。 - user445338
4
您说 "我的主要方法在CardApp类中",但小程序不需要主方法(至少不需要 public static void main(String s[]))。有一个主方法可能会使应用程序作为独立应用程序进行测试更加容易,但浏览器不会调用它。 - Alex Jasmin
1
发布你的小程序源代码。 - Matthew Flaschen
除了发布源代码(或更好的SSCCE-http://pscode.org/sscce.html),请确保控制台已打开,并复制/粘贴任何输出(错误和异常)。 - Andrew Thompson
我确实使用谷歌,这就是我来到这个问题的原因。 - Maciej Krawczyk
2个回答

20

使小程序在各种浏览器中正常工作非常困难。由于标签在早期没有得到很好的标准化,因此Internet Explorer和Mozilla走向了不同的方向。

Sun开发了一个通用的JavaScript脚本来处理所有特定浏览器的怪异行为,这样您就不必担心浏览器兼容性问题。

将此添加到您的部分:

<script src="//www.java.com/js/deployJava.js"></script>

将以下内容添加至 <body> 部分:

<script>
    var attributes = {codebase: 'http://my.url/my/path/to/codebase',
                      code: 'my.main.Applet.class',
                      archive: 'my-archive.jar',
                      width: '800', 
                      height: '600'};
    var parameters = {java_arguments: '-Xmx256m'}; // customize per your needs
    var version = '1.5'; // JDK version
    deployJava.runApplet(attributes, parameters, version);
</script>

请参阅Java™ 丰富的互联网应用程序部署建议,详细解释脚本和所有可能选项。


代码库是我存放.class文件的目录吗?我将.html文件放在与.class文件相同的目录中。我应该为代码库放什么? - user445338
还有archive是必需的属性吗?我没有jar文件。我应该构建一个吗?或者没有它也能工作吗? - user445338
还有,关于那行代码“var parameters.”,我是直接留着不管吗?还是需要用我的主要参数替换成“java_arguments”?实际上,我的程序运行并不需要任何参数。 - user445338
codebase是您的jar文件或单个类文件所在的URL。如果使用jar文件,则必须使用archive属性。否则,请省略archive属性。JDK版本是您的代码依赖的任何版本。因此,如果您正在使用JDK 1.5进行开发,则请指定1.6。如果您正在使用JDK 1.6进行编码,则请指定1.6。 - Kim Burgaard
1
它不再在Chrome上工作,因为Chrome不再支持NPAPI插件。https://www.java.com/it/download/faq/chrome.xml - Jackie Degl'Innocenti
显示剩余2条评论

1
我同意现在deployJava.js是首选方法。
然后按照历史的完整性,遵循几个旧的多浏览器技巧。

https://www.ailis.de/~k/archives/63-How-to-use-Java-applets-in-modern-browsers.html:

<object id="testapplet-object" 
        classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93"
        width="256" height="256"
        codebase="http://java.sun.com/update/1.6.0/jinstall-6u30-windows-i586.cab#Version=1,6,0,0">
  <param name="archive" value="mytest.jar" />
  <param name="code" value="my.package.MyClass" />
  <param name="myParam" value="My Param Value" />
  <embed id="testapplet-embed"
         type="application/x-java-applet;version=1.6"
         width="256" height="256" 
         archive="mytest.jar"
         code="my.package.MyClass" 
         pluginspage="http://java.com/download/"
         myParam="My Param Value" />
  </embed>
</object>

http://joliclic.free.fr/html/object-tag/zh-cn/object-java.html(有多种变体):

<object classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" 
        width="150" height="80">
  <param name="codebase" value="data" >
  <param name="code" value="JitterText">
  <param name="BGCOLOR" value="000000">
  <param name="TEXTCOLOR" value="FF0000">
  <param name="TEXT" value="OJITesting!">
  <param name="SPEED" value="250">
  <param name="RANDOMCOLOR" value="1">

  <!--[if gte IE 7]> <!-->
  <object classid="java:JitterText.class"
          codebase="data"
          type="application/x-java-applet"
          width="150" height="80">
    <param name="code" value="JitterText">
    <!-- Safari browser needs the following param -->
    <param name="JAVA_CODEBASE" value="data">
    <param name="BGCOLOR" value="000000">
    <param name="TEXTCOLOR" value="FF0000">
    <param name="TEXT" value="OJITesting!">
    <param name="SPEED" value="250">
    <param name="RANDOMCOLOR" value="1">
    alt : <a href="data/JitterText.class">JitterText.class</a>
  </object>
  <!--<![endif]-->
  <!--[if lt IE 7]>
    alt : <a href="data/JitterText.class">JitterText.class</a>
  <![endif]-->

</object>

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接