【问题标题】:Running app in IDE stops working在 IDE 中运行应用程序停止工作
【发布时间】:2017-08-29 00:47:09
【问题描述】:

上周我完成了一个测试应用程序的开发,并在所有模拟器中成功运行它。 今天我决定看看发布应用程序并使用“Sent Android Build”。构建状态“成功”。 然后尝试从命令行运行 jar 并得到:

peter@PeteSuse:~> java -jar "/home/peter/NetBeansProjects/mobile-apps/pGame/dist/pGame.jar"
java.lang.ArrayIndexOutOfBoundsException: 0
    at com.codename1.impl.javase.Executor$1.run(Executor.java:84)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)

所以尝试从 GUI 运行并得到:

run:
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: javafx/embed/swing/JFXPanel
    at com.codename1.impl.ImplementationFactory.createImplementation(ImplementationFactory.java:69)
    at com.codename1.ui.Display.init(Display.java:566)
    at com.codename1.impl.javase.Executor$1.run(Executor.java:112)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)

Java 版本:

peter@PeteSuse:~> java -version
openjdk version "1.8.0_121"
OpenJDK Runtime Environment (IcedTea 3.3.0) (suse-23.1-x86_64)
OpenJDK 64-Bit Server VM (build 25.121-b13, mixed mode)

我在 Suse Linux 42.1 64b 上使用 Netbeans(对此的新手)。

我是否在某个地方丢失了图书馆?还是别的什么?

【问题讨论】:

    标签: codenameone


    【解决方案1】:

    谢谢各位。我通过将 jfxrt.jar 添加到 NetBeans 中的库来解决此问题。

    【讨论】:

      【解决方案2】:

      您可以通过按下 IDE 中的播放按钮在模拟器中运行 Codename One 应用程序。它不适用于命令行,也不应该因为应用不应该有 main() 方法。

      您可以使用以下命令从命令行执行 Codename One 模拟器:

      java -jar JavaSE.jar:dist/MyApp.jar 
      

      请注意,这假定您的项目是工作目录。

      【讨论】:

        【解决方案3】:

        JFXPanelJavaFX library 中。

        请参阅:JavaFX and OpenJDK,了解为什么 JavaFX 在您的 OpenJDK 发行版中默认不可用。

        1. 如果你的 linux 发行版提供了一个开放的 JavaFX 包(就像 ubuntu 一样:Why is JavaFX is not included in OpenJDK 8 on Ubuntu Wily (15.10)?),那么你可以使用它。
        2. 否则你可以build from source(用于冒险的牦牛剃须刀)。
        3. 或者,最简单的方法是发送至Oracle Java distribution

        我不知道 codenameone,也不知道它是如何工作的。可能无论它是什么,您都可以要求创建者将他们的东西打包为self-contained application,以便它附带兼容的 Java 运行时,这将(可能)避免您遇到的问题。不知道代号,我不知道这是否有意义。

        我也不知道你原来的ArrayIndexOutOfBoundsException 的原因,因为它看起来是代号或你使用它的内部。


        对于 NetBeans,您可能需要 set the Java platform 与安装了 JavaFX 的一个(如果您的计算机上安装了多个 Java 平台)。

        【讨论】:

          猜你喜欢
          • 2021-04-14
          • 2018-10-18
          • 1970-01-01
          • 2014-06-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-01-27
          相关资源
          最近更新 更多