【问题标题】:Java appletviewerJava 小程序查看器
【发布时间】:2013-10-12 16:15:06
【问题描述】:

我编写了一个简单的 Hello World Java 小程序并将其命名为 HelloApplet.java。我为它创建了一个名为 HelloApplet.html 的 html 文件。这两个文件以及编译的HelloApplet.class 文件都驻留在我的Windows 7 计算机的C:\temp 目录中。 HelloApplet.html 文件有两行:

<applet codes = "HelloApplet" width = 300 height = 300>
</applet>

从我执行的C:\temp目录

appletviewer HelloApplet.html

一切都按预期进行。

在我的 java 代码顶部添加一个包语句时遇到了问题。第一行写着:

package applet;

然后我将 html 文件的第一行更改为:

<applet code = "applet.HelloApplet" width = 300 height = 300>

仍然来自 C:\temp 我运行 appletviewer 但这次它不起作用。找不到类文件。我做错了什么?

【问题讨论】:

  • 我的 HelloApplet.html 如下图所示:

标签: java applet packages classnotfoundexception appletviewer


【解决方案1】:

在 Java 中,当您重构代码并将类移动到包中时,您必须将相应的文件 (HelloApplet.java) 移动到以包命名的子文件夹中。这意味着您的文件夹层次结构应该与您为应用程序选择的打包方案相匹配。这样,如果您的课程位于名为 a.b.c 的包中,那么您的课程应该位于 {source folder}\a\b\c 文件夹中。

在您的示例中,您必须在 c:\temp5 文件夹中创建一个名为 applet 的新文件夹并将您的类移入其中,然后编译并运行您的代码。

【讨论】:

    【解决方案2】:

    尝试根据doc改变code属性

    <applet code = "applet.HelloApplet.class" width = 300 height = 300>
    

    并将文件HelloApplet.class 移动到applet 文件夹。

    【讨论】:

    • 那是不正确code 属性应该是类的完全限定名称,使用.。所以applet.HelloApplet(正如 OP 当前所拥有的那样)是正确的
    • 不! 如果我的意思是 applet.HelloApplet.class 是正确的,我会这么说。不是,FQN 是 applet.HelloApplet。不多也不少。较长的表格是“可以容忍的”,并且在整个教程中反复令人作呕,但不正确。
    【解决方案3】:

    正如 moghaddam 所说,当您在 Java 小程序/应用程序中指定一个包时,您需要在目录层次结构中反映该包。因此,如果你有一个 applet 包,目录树应该是(在你的情况下)

    C:\
    └── temp
        └── applet
            └── HelloApplet.class
    

    从 temp 你应该能够执行appletviewer applet.HelloApplet

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-05-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多