我已经构建了一个java applet,并尝试将其嵌入到我服务器上的HTML文件中。当我访问该页面时,applet会尝试加载,但随后ClassNotFoundException
上的.applet.BookingApplet.class
崩溃(这是applet的名称,其中applet
是applet的名称在。)
<body>
<script src ="http://java.com/js/deployJava.js"></script>
<script>
var attributes = {
codebase: '/webapp/HelpSessions.jar',
code: '/webapp/HelpSessions.jar/applet/BookingApplet.class',
archive: '/lib/javax.persistence.jar, /lib/javax.validation-1.0.0.GA.jar, /lib/joda-time-2.1.jar, /lib/mail.jar, /lib/mysql-connector-java-5.1.23-bin.jar',
width: 800,
height: 600
};
var version = "1.6"
deployJava.runApplet(attributes, version);
</script>
</body>
这是我第一次尝试做这样的事情,所以我确定这只是一个语法错误,我指的是HTML中的类文件。如果需要,我可以发布任何其他代码,但我认为它不相关,因为applet在AppletViewer中运行良好。
我今晚不会睡觉,直到我把这个东西运转起来......
编辑:为了简化操作,我尝试将所有内容移动到一个文件夹中,因此我不必处理代码库。这就是现在的样子:<html>
<head>
<title>Schedule a Help Session</title>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
</head>
<body>
<script src ="http://java.com/js/deployJava.js"></script>
<script>
var attributes = {
code: '/applet/BookingApplet.class',
archive: '/lib/javax.persistence.jar, /lib/javax.validation-1.0.0.GA.jar, /lib/joda-time-2.1.jar, /lib/mail.jar, /lib/mysql-connector-java-5.1.23-bin.jar',
width: 800,
height: 600
};
var version = "1.6"
deployJava.runApplet(attributes, version);
</script>
</body>
我得到了相同的ClassNotFoundException。此外,我可以在java控制台的详细信息中看到InterruptedException,但它没有告诉我在我的代码中导致异常的位置(如果有的话)。
答案 0 :(得分:0)
将code
属性更改为“applet / BookingApplet.class”。目前您正在使用“/applet/BookingApplet.class”。
当Java读取URL时,它将任何'/':s转换为'。':s。这将使URL“/applet/BookingApplet.class”“.applet.BookingApplet.class”。 “applet / BookingApplet.class”将成为“applet.BookingApplet.class”,这是正确的。
请记住将codebase
设置为指向“applet”目录所在的目录。