2013-10-05 65 views
0

我寫了一個簡單的Hello World java applet,並將其命名爲HelloApplet.java。我爲它創建了一個名爲HelloApplet.html的html文件。這兩個文件以及已編譯的HelloApplet.class文件都位於我的Windows 7計算機的C:\temp目錄中。該HelloApplet.html文件有兩行:Java appletviewer

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

C:\temp目錄我執行

appletviewer HelloApplet.html 

,並如預期一切正常而已。

當我將package語句添加到我的java代碼的頂部時,我遇到了一個問題。第一行寫着:

package applet; 

我然後更改HTML文件的第一行改爲:

<applet code = "applet.HelloApplet" width = 300 height = 300> 
C:\temp我跑 appletviewer

不過這一次卻行不通。無法找到類文件。我究竟做錯了什麼?

+0

我HelloApplet.html如下所示: –

回答

3

在Java中,當您重構代碼並將您的類移動到包時,必須將相應的文件(HelloApplet.java)移動到您的包之後命名的子文件夾中。這意味着您的文件夾層次結構應該與您爲應用程序選擇的打包方案相匹配。這樣,如果您的課程名爲a.b.c,那麼您的課程應位於{source folder}\a\b\c文件夾中。

在您的示例中,您必須在c:\temp5文件夾中創建一個名爲applet的新文件夾,然後將其移入其中,然後編譯並運行您的代碼。

1

嘗試根據doc

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

改變code屬性和文件HelloApplet.class移動到文件夾applet

+0

也就是說*不正確*。 'code'屬性應該是類的完全限定名,使用'.'。所以'applet.HelloApplet'(就像OP當前所擁有的那樣)是* correct *。 –

+0

@AndrewThompson現在是否正確? – 2013-10-06 07:42:49

+0

***不!***如果我的意思是'applet.HelloApplet.class'是正確的,我會這麼說。不是,FQN是**'applet.HelloApplet' **。沒有更多,不少。更長的形式是'容忍'的,並且在整個教程中反覆出現,但不正確。 –

0

正如moghaddam所說,當您在Java applet /應用程序中指定包時,您需要在目錄層次結構中反映包。因此,如果你有一個applet包,目錄樹應該是(你的情況)

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

,並從臨時,你應該能夠執行appletviewer applet.HelloApplet

相關問題