我已经完成了一些Java程序,但这是我尝试作为applet运行的第一个程序,所以我可能会遇到一些基本错误。
我编译了所有类并将它们放在一个名为final的jar文件中。 我按照一些教程制作了一个JNLP文件,我称之为jnlp(是的,我知道,我非常原创:)并且我调用了我的jar文件并从HTML文件中调用了JNLP文件。
这些是java控制台输出的最后一行:(在它们之前,控制台充满了我的JNLP文件)
at sun.plugin2.applet.JNLP2Manager.loadJarFiles(Unknown Source)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
preloader: Added pending event 2: ErrorEvent[url=null label=JNLP not an applet, nor a JavaFX application cause=JNLP not an applet, nor a JavaFX application
这是JNLP文件:
<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="" href="jnlp.jnlp">
<information>
<title>Encryption Software</title>
<vendor>Atlantis Atlantis</vendor>
<icon href="encrypt_logo.jpg"/>
<offline-allowed/>
</information>
<resources>
<!-- Application Resources -->
<j2se version="1.6+" href=
"http://java.sun.com/products/autodl/j2se"/>
<jar href="final.jar"
main="true" />
</resources>
<application-desc
name="Encryption Software"
main-class="EncryptApplication"
width="500"
height="300">
</application-desc>
<update check="background"/>
</jnlp>
以下是用于启动applet的JS:
<script src="https://www.java.com/js/deployJava.js"></script>
<script>
var attributes = {code:'', width:500, height:500};
var parameters = {jnlp_href: 'jnlp.jnlp'};
deployJava.runApplet(attributes, parameters, '1.6');
</script>
答案 0 :(得分:3)
EncryptionApplication
真的是applet吗?要成为小程序,必须延长Applet
或JApplet
。
如果它不是applet,则无法嵌入HTML。
如果是小程序,JNLP必须如此声明,所以:
<application-desc
name="Encryption Software"
main-class="EncryptApplication"
width="500"
height="300">
</application-desc>
应该是:
<applet-desc
name="Encryption Software"
main-class="EncryptApplication"
width="500"
height="300">
</applet-desc>
JFrame
的应用程序。)。它们将受到applet相同(非常严格)的安全性要求,但没有applet特定的问题(详见上一点中的链接)。code
属性的有效值。有 的情况可以将其排除在外,但我现在不会进入那个......