2012-04-19 11 views
4

参照ライブラリを含む実行可能なJAR、つまりjacksonをeclipseでエクスポートを介して作成したいとします。以前は、実行可能なJARにエキスポートする前に、gotoの解決策と思われるファットジャーがありました。実行可能なJARが参照されたライブラリと連携していない

このquestionから、最初のオプションが私が探しているものになります。小さなプロジェクトであるので、常にJAR、ランナブル、jnlpから始まっているので、すべてを一緒に持つことは問題ではありません。

起動しようとするとそれには、問題があったことを知らせ、コンソールで見つけようとするアラートウィンドウがあります(これを開くことはできません)。

この参照されたライブラリの使用を取り除くと、すべてが完全に実行されます(ただし、私がしたいことをしていない部分を除く)。ウィンドウは私の設計通りに見えますが、ライブラリがなければ機能はありません。

私はこの問題を助けるスタックトレースも持っていません。私は参照されたライブラリなしで他のプロジェクトを作成しました。だから私はそれをかなり絞り込んだ。

私はEclipseにエクスポートなどを処理させるので、問題がないかどうかをマニフェストで確認する必要はありません。質問があれば、必要な情報を提供します。プロジェクトがEclipseから直接実行されることは言うまでもない。

Eclipseの バージョン:インディゴサービスリリース2 ビルドID:私はそれを行うとどうなりBaquetaの答え

次20120216から1857


編集は私がカスタムを得るということですRuntimeException。私はここで少し戸惑う。ここで私のコードの簡単な説明です。 私は参照されたライブラリ(jackson)を使用するユーティリティクラス(UtilityJSON)を持っています。そのユーティリティクラスのコンストラクタは、参照されたライブラリに定義されているオブジェクトをインスタンス化します。これをmapperと呼ぶことにします。 UtilityJSONのメソッドは、 'mapper'のメソッドを使用します。この時点で例外が発生します。なぜ私がうんざりしているのは、「マッパー」が正常にインスタンス化されていますが、そのメソッドを使用すると例外が発生するということです。 jarが参照されたライブラリを見つけられなかった場合、おそらくオブジェクト 'mapper'を作成できませんでした。しかし、Eclipseからプロジェクトを実行することは問題ありません。 実行可能なjarを実行しているときにデバッグする方法はありますか?たぶんコンソールに何かをエコーし​​ます。


編集2

私は、エラーを発見したことがあります。私のプログラムは、プロジェクト内のフォルダ内の* .txtファイルを読み込みます。 jarファイルの内容を調べると、このフォルダは含まれていないことがわかります。したがって例外です。だから問題は今、どのように私はこのフォルダを含めるになりますか?それはプロジェクトのルートフォルダにあります。

+0

Jarを実行しようとすると、どのようなエラーメッセージが表示されますか?コマンドプロンプトに移動して 'java -jar <あなたのjar名> .jar'と入力すると、何がうまくいかないのかがわかるはずです... – vaughandroid

+0

ねえ、あなたの答えを忘れてしまいました。私の編集をご覧ください。 – Chamane

+0

私が集めたものから、あなたはエクスプローラから起動しようとしています。コンソールを起動する前にも死んでいるようです。コマンドラインから起動すると、より多くの情報を得ることができます。 jarを含むフォルダのcmd(または同等のもの)に 'java -jar .jar'と入力します。うまくいけば、それが起動できなかった理由についての有益な情報をあなたに伝えます。 – vaughandroid

答えて

3

次の操作を試みることができる:Eclipseの

  1. 、プロジェクト - >プロパティにアクセスしてください。
  2. 左側の列から[Java Build Path]を選択します。
  3. [注文とエクスポート]タブを選択します。
  4. リストで 'jackson'を探し、それがチェックされていることを確認します。 、Eclipseで

    パッケージエクスプローラで* .txtファイルを見つける:

EDIT は、あなたの更新の質問に答えるために。それを右クリックし、[ビルドパス] - > [ビルドパスに追加]を選択します。次に、上記の手順に従って、ファイルがJarに含まれることを確認します。最後に、きれいにして再構築してください。

リソースを追加する場合は、リソースフォルダ(「res」と呼ばれることもあります)を持たせるのが一般的です(それは理にかなっています)。フォルダ全体をビルドパスに追加すると、そこにあるすべてのリソースがJarに含まれます。

+0

確認されていません。それを試しても、まだ動作しません。私は、実行可能ファイルをエクスポートするための最初の2つのオプションを試しました。 – Chamane

+0

うん、私はそれが動作するようにすぐに正しい答えを選択します。リソースフォルダを持つことは確かに意味があります。私は1つを作成し、すべてをそこに移動しました。ファイルを開くために使用するパスを更新し、すべてのJUnitが成功しました。ビルドパスに 'rsc'が追加されましたが、ファイルがオープンできない(そのようなファイルやディレクトリはありません)というJarファイルはまだ実行されていません。私は明らかにそれを動作させることに近いです。だからすぐに、私はこの問題を解決します。 – Chamane

+0

ありがとう、それはすべて今働く。なぜ私は現時点では分かりませんが、[this](http://stackoverflow.com/questions/2671796/how-to-include-text-files-with-executable-jar)を使用する必要がありました。それを動作させるためには、自分の* .txtファイルをパッケージ内のどこかに直接移動しなければなりませんでした。これは絶対に恐ろしいことです。確かにこれに別の解決策があり、私は探し続けるでしょう。参照されたライブラリを含めると、すべてがうまくいきます。ありがとうございました。 – Chamane

1

ターミナルに

javaws -viewer 

を書き込むことにより、Javaコンソールを有効にします。キャッシュビューアを閉じ、詳細タブをクリックします。 Javaコンソールを開き、「コンソールを有効にする」をクリックします。

+0

Java Preferencesを開くコマンドラインがわからなかったのに、私はすでにそれを有効にしていました。そのラジオボタンが選択されると、次にプログラムを実行しようとするときにコンソールが開くはずですが、そうではありません。それを開くことができなかったというアラートウィンドウだけが表示されます。 – Chamane

+0

エラーダイアログのメッセージは何ですか? – Stefan

+0

フランス語からの正確な翻訳を知らないのですが、 "Test.jarファイルを起動できません"のようなものです。コンソールの潜在的なエラーメッセージを検索します。 – Chamane

関連する問題