web文件夹下的Java小程序,ClassNotFoundException

web文件夹下的Java小程序,ClassNotFoundException,java,php,deployment,applet,Java,Php,Deployment,Applet,首先,我将一个小程序嵌入到带有小程序标记的页面中,如下所示: <APPLET code="MyApplet.class" codebase="/" align="baseline" width="200" height="200"> Your browser does not support Java Applets. </APPLET> code = "../MyApplet.class" 但这似乎导致小程序认为该类名为“…MyApplet.clas

首先,我将一个小程序嵌入到带有小程序标记的页面中,如下所示:

<APPLET code="MyApplet.class" codebase="/" align="baseline"
    width="200" height="200">
    Your browser does not support Java Applets.
</APPLET>
code = "../MyApplet.class"
但这似乎导致小程序认为该类名为“…MyApplet.class”

然后我把它改回来,改成这样的代码库:

<APPLET code="MyApplet.class" codebase="/" align="baseline"
    width="200" height="200">
    Your browser does not support Java Applets.
</APPLET>
code = "../MyApplet.class"
code=“MyApplet.class”
codebase=“../”

但这仍然给了我ClassNotFoundException

我认为applet是客户端的,所以现在我认为不可能让applet类文件远离公共域,因为它们需要下载到客户端

有人能帮我确认一下吗?或者如果我弄错了,告诉我如何正确地输入相对路径


谢谢。

是的,小程序类是由小程序插件使用其构造的URL(作为页面URL和代码库的连接)下载到web浏览器的。由于URL不支持类似于
(它是文件路径表示法)的表示法,因此在配置小程序时不能使用它

另一个答案

URL不支持像
这样的符号。

当然有

import java.io.File;
import java.net.URL;

class WhereIsMyGrandParent {
    public static void main(String[] args) throws Exception {
        File f = new File("WhereIsMyGrandParent.java");

        URL url = f.toURI().toURL();

        URL parent = new URL(url, "..");
        System.out.println("grand parent: " + parent);
    }
}

真正的问题在于误解这些参数的用途以及这些值是如何使用的/它们的含义

code="MyApplet.class" codebase="/"
1)代码属性应该是类的完全限定名。所以正确的例子可能是

code="MyApplet"
…或

2)A
/
codebase
转换为“域的根”。例如,位于的小程序可能会形成
/
的URL,并指向。特别要注意的是,域的根目录中没有
(父目录)


就服务器的位置而言,我不完全理解服务器的结构

  • 小程序HTML
  • 小程序代码
  • 请考虑为每个或更好的嵌套列表的位置提供显式(或相对)URL。例如

    • /
      • code
        • MyApplet.class
      • applet
        • applet.html
    “URL不支持像
    这样的符号。
    ”错误!我在回答中解释了原因。