2012-11-10 86 views
0

我有一個奇怪的問題。我將所有的.class文件加載到JAR文件中,並將其放置在本地Web服務器上。問題是當我用JAR導航到頁面時,我得到了一個大的ClassNotFoundExeption。我是100%certian這個類文件在我的JAR中。我也知道這個JAR文件在同一目錄作爲我的XHTML文件Java中的ClassNotFoundException

這裏是XHTML源

<html> 
    <head> 
    </head> 
    <body bgcolor="000000"> 
     <center> 
      <applet 
       archive = "program.jar" 
       code = "inigui4.class" 
       width = "500" 
       height = "300" 
      > 

      <param name="cache_option" value="no"> 
      </applet> 
     </center> 
    </body> 
</html> 

很奇怪!

出於某種原因,當我創建一個Hello World小程序,我得到了同樣的問題(難道是我的LightTPD則服務器?

Java源代碼如下

import java.awt.*; 
import java.applet.*; 

public class inigui4 extends Applet { 

    public void init() { 
    } 

    public void paint(Graphics g) { 

     g.drawString("Welcome to Java!!", 50, 60); 

    } 
} 

即使是陌生人。

現在我無法在網絡上加載任何小程序,因爲我得到這個錯誤。我需要在早上聯繫Oracle。

+1

請發佈您得到的異常的完整堆棧跟蹤。問題不在於沒有找到JAR文件本身,而是從JAR中缺少一個類... – ppeterka

+0

如何判斷哪個文件丟失? –

+0

堆棧跟蹤告訴你。在它的ClassNotFoundException長長的亂碼。只需複製並粘貼到問題 – ppeterka

回答

0

這可能是由多種原因引起的,但最可能的原因是您沒有指定您正在使用的課程包。看看這個post的答案。

0

如果您使用的軟件包,你已經有通過its relative path into the jar

+0

對不起,這個愚蠢的問題,但我怎麼能做的例外堆棧跟蹤...我從來沒有真正學會如何運行堆棧跟蹤 –

0

前綴inigui4.class我認爲這個問題是在這裏:

 <applet 
      archive = "program.jar" 
      code = "inigui4.class" 
      width = "500" 
      height = "300" 
     > 

在這裏,你指定inigui4.class - 但在Java代碼:

public class inigui_rb extends Applet { 
    ... 
} 

這是inigui_rb。試試:

  <applet 
      archive = "program.jar" 
      code = "inigui_rb.class" 
      width = "500" 
      height = "300" 
     > 

ClassNotFoundException應該消失。

編碼時也請堅持Java coding conventions!在這種情況下:

  • 班級名稱以首都開頭!
  • ClassNamesDoNotContainUnderscoresInsteadTheyAreCamelCased!
+0

不,這是一個新的程序,當我建立hello世界程序時,我改變了類的名稱 –

+0

好的,那麼請更新問題以保持一致,因爲這是誤導性的。 – ppeterka

相關問題