【问题标题】:Errors deploying Applet created in Netbeans, using Netbeans and Swing使用 Netbeans 和 Swing 部署在 Netbeans 中创建的 Applet 时出错
【发布时间】:2011-05-03 18:05:59
【问题描述】:

我已经使用 NetBeans 创建了一个 Applet。我的伙伴使用了 NetBean 的拖放式 Swing 编辑器作为界面。当我右键单击小程序文件并单击“运行”时,它运行得非常好,没有异常或警告。但是,当我构建它并将 NetBeans 生成的 html 文件放在我机器上的 apache 服务器上并运行它时,它会引发此异常。

这是我将其部署到本地服务器 (~myHome/Sites/) 的步骤:

  1. 我点击“清理并构建”

  2. 我右键单击选项卡小程序源文件并选择“运行”。它在新窗口中打开并运行良好。 (它还会创建一个 Applet.html 文件进行测试,这就是我这样做的原因)

  3. 我运行 $ cp -r /build ~myHome/Sites 这会将用于测试的 html 文件和包含所有已编译类的类文件夹复制到我的站点文件夹

  4. 打开网络浏览器到该路径,它会报错并且无法加载

这是来自控制台的错误:

basic: Added progress listener: sun.plugin.util.GrayBoxPainter$GrayBoxProgressListener@316d3536
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: sun.plugin.util.GrayBoxPainter$GrayBoxProgressListener@316d3536
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 编辑器创建的小程序,我需要做些什么吗?

有什么建议可以解决这个问题吗?我已经关注了异常,它导致了 Mediator line 26... 这是:

gui = new AppletGUI();

该行是由 NetBeans Swing 编辑器创建的 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 中的所有内容都已被注释掉,并且在 Web 浏览器中初始化 TabGUI 时仍然会引发异常。

抱歉,拖了这么久。

谢谢你, -N

【问题讨论】:

  • 嗨@Nate 你真的可以尝试为我们建立一个SSCCE 来解决这个问题吗?我以前从来没有遇到过这样的问题。
  • 相同的 JRE 版本?同一个浏览器?
  • 我已经在最新版本的 FireFox 和 Chrome 上进行了尝试。我正在运行 java 1.6.0_24

标签: java swing netbeans applet


【解决方案1】:

GroupLayout 似乎不可用。由于它是 1.6 版的新功能,您可以检查已安装的 JRE。

【讨论】:

  • 好主意,我正在运行 1.6.0_24
  • 仔细看,你确实是cp -r build ~myHome/Sites,而你的意思可能是cp -r dist ~myHome/Sites
  • 看起来是正确的。我使用archive =“SoJars.jar”标签作为codebase =“classes”遇到了类似的问题。也许我会尝试手动编译它
  • 你也可以查看dist/README.TXT
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2023-03-29
  • 1970-01-01
  • 1970-01-01
  • 2011-02-05
  • 1970-01-01
  • 1970-01-01
  • 2014-03-10
相关资源
最近更新 更多