2011-05-03 104 views
0

我使用NetBeans创建了一个Applet。我的合作伙伴使用NetBean的拖放式摆动编辑器作为界面。当我右键单击小程序文件并单击“运行”时,它运行得很好,没有任何例外或警告。但是,当我构建它并将NetBeans生成的html文件放在我的计算机上的apache服务器上并运行它时,它会引发此异常。使用Netbeans和Swing在Netbeans中部署创建Applet的错误

这里是一步一步的我在做什么将其部署到我的本地服务器(〜MYHOME /网站/):

  1. 我点击“清理并生成”

  2. 我的权利点击选项卡的小程序源文件并选择“运行”。它在新窗口中打开并运行良好。 (它还创建一个用于测试的Applet.html文件,这就是为什么我这样做)

  3. 我运行$ CP-R /编译〜MYHOME /网站 此副本测试的HTML文件,并与所有的类文件夹编译的类到我的站点文件夹

  4. 打开Web浏览器的路径,并给出了一个错误,并不会加载

下面是从控制台的错误:

basic: Added progress listener: [email protected] 
basic: Applet loaded. 
basic: Applet resized and added to parent container 
basic: PERF: AppletExecutionRunnable - applet.init() BEGIN ; jvmLaunch dt 260792 us, pluginInit dt 255591692 us, TotalTime: 255852484 us 
network: Cache entry not found [url: http://***.edu/~myHomeDirectory/build/classes/org/jdesktop/layout/GroupLayout$Group.class, version: null] 
network: Connecting http://~myHomeDirectory/Sites/build/classes/org/jdesktop/layout/GroupLayout$Group.class with proxy=DIRECT 
network: Connecting http://***.edu:80/ with proxy=DIRECT 
network: Connecting http://***.edu/~myHomeDirectory/Sitesbuild/classes/org/jdesktop/layout/GroupLayout$Group.class with cookie 
basic: Removed progress listener: [email protected] 
Exception in thread "thread applet-tab_interface/TabApplet.class-4" java.lang.NoClassDefFoundError: org/jdesktop/layout/GroupLayout$Group 
    at tab_interface.Mediator.<init>(Mediator.java:26) 
    at tab_driver.TabDriver.<init>(TabDriver.java:86) 
    at tab_interface.TabApplet.init(TabApplet.java:69) 
    at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Plugin2Manager.java:1640) 
    at java.lang.Thread.run(Thread.java:680) 
Caused by: java.lang.ClassNotFoundException: org.jdesktop.layout.GroupLayout$Group 
    at sun.plugin2.applet.Applet2ClassLoader.findClass(Applet2ClassLoader.java:252) 
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass0(Plugin2ClassLoader.java:250) 
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Plugin2ClassLoader.java:180) 
    at sun.plugin2.applet.Plugin2ClassLoader.loadClass(Plugin2ClassLoader.java:161) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:248) 
    ... 5 more 

所以我想我的主要问题是:

有什么额外的我必须做的部署和使用NetBeans Swing编辑器创建的小程序?

关于接下来应该怎么处理这个问题的任何建议?我跟着例外,它会导致中保线26 ...这就是:

gui = new AppletGUI(); 

这条线是通过NetBeans的摇摆编辑器创建的GUI类的构造函数。这里有一些基本的代码来展示正在发生的事情。小程序,GUI,GUIMediator在一个包中,而TabDriver在它自己的包中。

class MyApplet extends Applet{ 

GUIMediator gui; 
TabDriver driver; 

init(){ 
    driver = new TabDriver(...); // TabDriver creates a mediator 
    gui = driver.getMediator(); 
    try { 
      SwingUtilities.invokeAndWait(new Runnable() { 
       public void run() { 
        createGUI(); 
       } 
      }); 
     } catch (InterruptedException ex) { 
      ... 
     } catch (InvocationTargetException ex) { 
      ... 
     } 
    } 

    void createGUI(){ 
     this.add(gui.getGUI()); // add JPanel to Applet 
    } 
} 

class TabDriver { 

    TabDriver (...) { 
     this.mediator = new GUIMediator(this); 
    } 

} 

class GUIMediator { 
    TabDriver driver; 
    JPanel GUI; 

    GUIMediator(TabDriver td) { 
     driver = td; 
     GUI = new TabGUI(); 
    } 
} 

class TabGUI extends JPanel { 

    TabGUI() { 
//  super(); 
//  init(); 
//  initListeners(); 
//  ... 
    } 

} 

注意,一切都在TabGUI被注释掉,它仍然抛出异常时TabGUI在Web浏览器被初始化。

对不起,这是如此之久。

谢谢 -N

+0

嗨@Nate您真的可以尝试为我们构建一个[SSCCE](http://sscce.org)来解决这个问题吗?我从来没有遇到过这样的问题。 – Boro 2011-05-03 18:16:53

+0

相同的JRE版本?同一浏览器? – trashgod 2011-05-03 20:18:54

+0

我试过了最新版本的FireFox和Chrome。我正在运行java 1.6.0_24 – Nate 2011-05-03 20:56:05

回答

0

看起来GroupLayout不可用。由于它是1.6版本中的新功能,因此您可以检查安装的JRE。

+0

好主意,我正在运行1.6.0_24 – Nate 2011-05-03 20:56:28

+0

仔细一看,您确实使用了'cp -r build〜myHome/Sites',当时您的意思是'cp -r dist〜myHome/Sites '。 – trashgod 2011-05-03 21:08:27

+0

它看起来像它的正确。我使用archive =“SoJars.jar”标签来获取类似的问题,作为codebase =“classes”。也许我会尝试手动编译它 – Nate 2011-05-03 22:31:51