【问题标题】:Embedding Java Applet in web page在网页中嵌入 Java Applet
【发布时间】:2013-03-17 15:58:40
【问题描述】:

我已经构建了一个 java 小程序,并试图将它嵌入到我服务器上的 HTML 文件中。当我访问该页面时,小程序尝试加载,但随后在.applet.BookingApplet.class 上以ClassNotFoundException 崩溃(这是小程序的名称,其中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 中引用类文件的方式的语法错误。如果需要,我可以发布任何其他代码,但我认为它不相关,因为小程序在 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,但它并没有告诉我代码中的哪个位置(如果有的话)是导致异常的。

【问题讨论】:

  • 尝试放完整路径
  • 放在哪里?另外,你的意思是包括public_html/,因为那是服务器上唯一的父文件夹
  • 像 C:/...,它可能有效,我不确定
  • code 相对于codebase,因此“applet/BookingApplet.class”可能在那里工作。
  • @btevfik - 它在服务器上,没有 c:/

标签: java html applet classnotfoundexception


【解决方案1】:

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”目录所在的目录。

【讨论】:

    猜你喜欢
    • 2012-03-12
    • 2012-11-15
    • 1970-01-01
    • 1970-01-01
    • 2010-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-19
    相关资源
    最近更新 更多