首先,我将Applet嵌入到带有APPLET标记的页面中,如下所示:
<APPLET code="MyApplet.class" codebase="/" align="baseline"
width="200" height="200">
Your browser does not support Java Applets.
</APPLET>
applet类文件位于与PHP页面相同的文件夹中的Web根目录中。
现在我将类文件从网上移到了上面的文件夹,我试着像这样更改代码:
code = "../MyApplet.class"
但这似乎导致applet认为该类被称为“... MyApplet.class”
然后我改回来并改变了代码库,而不是这样:
code = "MyApplet.class"
和codebase = "../"
但是这仍然给了我ClassNotFoundException。
我认为applet是客户端的,所以现在我认为不可能将applet类文件保留在公共域之外,因为它们需要下载到客户端?
任何人都可以为我确认这个,或者如果我错了,请告诉我如何正确地设置相对路径?
感谢。
答案 0 :(得分:1)
是的,applet类通过applet插件下载到您的Web浏览器,使用它构建的URL作为页面URL和代码库的串联。由于URL不支持..
(它是文件路径表示法)等表示法,因此在配置applet时无法使用它。
答案 1 :(得分:1)
从另一个答案..
网址不支持
等表示法..
当然可以!
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"
..或
code="com.our.MyApplet"
2) codebase
/
转换为“域的根”。例如。 http://our.com/applets/stockapplet/applet.html上的小程序可能会形成/
的网址,并指向http://our.com/。请特别注意,从域的根目录中不存在..
(父)。
我不完全了解服务器的结构
的位置请考虑为每个或更好的嵌套列表的位置提供显式(或相对)URL。 E.G。
/
code
MyApplet.class
applet
applet.html