2017-02-15 3 views
1

IntelliJ IDEでJCursesライブラリを使用したいと思っていますが、次のエラーメッセージが表示されます。IntelliJでJCursesを使用するには?

マイコード:

import jcurses.system.*; 
// Test Jcurses 
Toolkit.init(); 

マイ設定:

  • VMのDebian 8.7 jcursesとのIntelliJ 2016年3月3日とJAVAオープンJDKと64ビット、64ビット1.8
  • Libディレクトリ。 jarとlibcurses64.so

良い方法についてのドキュメントはありません。

アイデアはありますか?

+0

おそらく、IntelliJには完全なターミナルエミュレータがないためです。あなたの実行設定では、環境変数 'TERM = dumb'を定義できますか?また、あなたがncursesをインストールしたことを確認できますか(私が信じる 'sudo apt-install ncurses')。私が想像できるtermcapデータベースが必要です。 – Qix

+0

環境変数TERM = dumbを追加すると、エラーメッセージが表示されなくなります。ありがとう – ManWithNoName

+0

私はこの行を追加しようとしました: 'Toolkit.printString(" hello "、0、0、新しいCharColor(CharColor.BLUE、CharColor.BLACK));'しかし、 。 – ManWithNoName

答えて

3

IntelliJ IDEAコンソールツールウィンドウは、実際の端末ではありません。

外部コンソールで実行できるようにするにはfeature requestがあります。 another related requestも参照してください。

現在、コンソールを起動してそこでアプリケーションを実行する外部ツールを設定できますが、このコンソールではIDE統合は利用できません(ただし、リモートデバッグは引き続き使用できます)。

また、ターミナルツールウィンドウを使用して手動でアプリを実行することもできます。あなたのアプリをexecutable jar with all the dependenciesにパックすると便利です。ターミナルツールウィンドウまたは外部ターミナルウィンドウでjava -jar myapp.jarのように実行することができます。

+0

'java -jar myapp.jar'を実行すると、次のエラーメッセージが表示されます。スレッド" main "の例外java.lang.ExceptionInInitializerErrorCaused:java.lang.NullPointerException \t jcurses.system.Toolkit.getLibraryPath (Toolkit.java:111) \t jcurses.system.Toolkitにあります。 (Toolkit.java:37) – ManWithNoName

+0

JCursesは、[some magic](http://pastebin.com/4B46xB1s)を使用してネイティブライブラリがどこにあるかを調べるため、同じライブラリからロードしようとすると機能しない場合がありますjarをメインアプリケーションとして使用します。代わりに[リンクされた依存関係](http://stackoverflow.com/a/42200519/104891)でアーティファクトを作成することができます。 'jcurses.jar'と' .so'ファイルはあなたのアプリケーションjarの隣に存在していなければなりません。 – CrazyCoder

関連する問題