2017-04-04 12 views
2

先週私はテストアプリケーションで開発を終え、すべてのシミュレータで正常に実行しました。 今日、私はアプリの公開を見て、「Androidのビルドを送信」を使用することにしました。ビルドステータス "成功"。 は、次にコマンドラインから実行しているjarファイルを試してみましたが、得た:IDEで実行中のアプリケーションが動作を停止する

[email protected]:~> 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バージョン:

[email protected]:~> 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) 

私はNetbeansの(新しいを使用していますこれは、Suse Linux 42.1 64bにあります。

どこか図書館を紛失しましたか?または、他の何か?

答えて

0

JFXPanelは、JavaFX libraryである。

参照:OpenJDKディストリビューションでJavaFXがデフォルトで利用できない理由については、JavaFX and 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ランタイムが同梱されているため、遭遇しているような問題を避けることができます。 codenameoneを知らないと、それが意味をなさないかどうかわかりません。

また、元のArrayIndexOutOfBoundsExceptionの原因をcodenameoneの内部またはあなたの使用のように見分けることもできません。 NetBeansのに関して


、あなたは(あなたがあなたのマシンにインストールされている複数のJavaプラットフォームを持っている場合)がインストールJavaFXの持つものにset the Java platformに必要になる場合があります。

0

IDEの再生ボタンを押すと、SimulatorでCodename Oneアプリケーションを実行できます。それはコマンドラインからあなたのために働くことはありませんので、アプリケーションはmain()メソッドを持つべきではありません。

あなたは使用してコマンドラインからのコードネームつのシミュレータを実行することができます。これは、あなたのプロジェクトを想定してい

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

通知は作業ディレクトリです。

1

ありがとうございます。 jfxrt.jarをNetBeansのライブラリに追加することで問題を解決しました。

関連する問題