IntelliJ IDEAのアプリケーション実行プロファイルのクラスパスにディレクトリを追加する方法


206

アプリケーション実行プロファイルのクラスパスにディレクトリを追加しようとしています

VM設定で-cp x:target / classesを使用してオーバーライドすると、次のエラーが発生します。

java.lang.NoClassDefFoundError: com/intellij/rt/execution/application/AppMain

プロジェクトのクラスパスにディレクトリを追加する方法に関するアイデアはありますか?


1
それをどこに追加しようとしているのか、私にはわかりません。IJコマンドラインから?またはプロジェクトのプロパティで?
Heiko Rupp

回答:


270

Intellij 13では、再び少し異なります。Intellij 13の手順は次のとおりです。

  1. プロジェクトビューをクリックするか、ウィンドウの左側の境界にある[1:プロジェクト]ボタンをクリックするか、Alt + 1を押して、再表示します。
  2. プロジェクトまたはサブモジュールを見つけてクリックして強調表示し、F4キーを押すか、右クリックして[モジュール設定を開く]を選択します(IntelliJ 14ではF12になりました)
  3. 依存関係タブをクリックします
  4. 右側の「+」ボタンをクリックして、「Jarまたはディレクトリ...」を選択します。
  5. パスを見つけて[OK]をクリックします
  6. 「選択したファイルのカテゴリを選択してください」というダイアログで、Classes(それがプロパティであっても)を選択し、OKとOKをもう一度押します。
  7. これでアプリケーションを実行でき、クラスパスに選択されたパスが含まれます

2
それでは、一方のみに存在し、もう一方には存在しない必要がある2つの異なるディレクトリを持つ構成を実行するためにどのように作成しますか。日食では、起動構成に何でも追加/削除できます。IntelliJはこれをサポートしていませんか?
Καrτhικ

9
それはあなたがのクラスパスに変更できることはかなり明らかだ実行構成を 変更するモジュールのクラスパスを。しかし、正確な質問は、「アプリケーション実行プロファイルのクラスパスにディレクトリを追加する方法」でした。それで、本当はuaaquariusによって与えられました
Pavel Vyazankin 2015

ありがとうございました !これは何年も探し回った後の私の問題を解決しました!
JonasCz-モニカを2015年

1
ステップ6は思いつきません。私はintellij 14を使用しています。.jarが置かれているlibというフォルダーがあります。フォルダーまたはjarを選択すると、パスがintellijに解析されるだけです。それでも機能しない
Takeru

@タケルこれわかった?
rosshamish 2016

91

IntelliJ 11でメソッドが変更されたようで、チェックした答えが機能しなくなりました。他の誰かが検索エンジン経由でここに到着した場合、IntelliJ 11で解決した方法は次のとおりです。

  1. プロジェクト構造に移動し、モジュールをクリックして、モジュールをクリックします
  2. 「依存関係」タブを選択します
  3. 右側の「+」ボタンをクリックし、「Jarまたはディレクトリ...」を選択します。
  4. 必要なディレクトリを追加し(複数選択できることに注意)、[OK]をクリックします。
  5. 表示されるダイアログで、「jarディレクトリ」ではなく「クラス」を選択します
  6. 実行ターゲットでそのモジュールを使用していることを確認してください

ステップ5が主な違いのように見えることに注意してください。「jarディレクトリー」を選択した場合、IDEではまったく同じに見えますが、実行時にパスは含まれません。事後に「クラス」または「jarディレクトリ」を以前に選択したかどうかを判断する方法がないようです。


4
これを投稿していただきありがとうございます。あなたは私を1時間かそこら救った。
ジョン・ジャン

私は以前と同じ問題をIJ11で抱えており、今回私を待っている答えを見つけることができて嬉しかったです。
SAL

完璧です。IJ12についても同じプロセスです。「java.lang.ClassNotFoundException:com / microsoft / jdbc / sqlserver / SQLServerDriver」を解決しようとしたときに、この投稿に出くわしました。これにより、接続の問題が解決しました。ありがとう
jkmurphy1 2013年

6
私は、ステップ5を得ることはありません:(ダイアログがちょうど来ていません。
チャールズ・ウッド

1
@CharlesWood:サブフォルダーを含む2つのフォルダーを選択したい場合。ダイアログを表示するには、フォルダ名の横にある小さな矢印記号を使用して、サブフォルダを含むフォルダを展開する必要がありました。そうでない場合、ダイアログはスキップされます。
Timo Reimann、2014年

35

Javaアプリケーションランチャーの-Xbootclasspath / a:pathオプションを試すことができます。説明により、「デフォルトのブートストラップクラスパスに追加するディレクトリ、JARアーカイブ、およびZIPアーカイブのコロン区切りのパス」を指定します。


2
-Xbootclasspathの動作に関するいくつかのドキュメント:docs.oracle.com/cd/E15289_01/doc.40/e15062/optionx.htm#i1018570
Lambart

3
プロジェクト構成を変更する必要がないため、これは良い答えです。実際、私はそれが質問に最もよく答えると思います。
Chewy

1
残念ながら、これは私にとっては機能しませんでした。その結果、そのクラスパスからロードされたすべてのクラスが、ブートストラップクラスローダーによってロードされ、Xyz.class.getClassLoader()がnullではないと想定するコードが壊れます。
Njol

@uaaquarius、なぜコマンドライン文字列を直接編集する方法がないのですか?これはイライラさせられます。
パセリエ2017

@uaaquarius、なぜそれが私が追加した場合ということであるmysql-connector-java-5.1.45/mysql-connector-java-5.1.45-bin.jarに他の方法を使用して依存関係としてstackoverflow.com/a/16742141/632951 それは動作しますが、使用してやって-Xbootclasspath/a、それはしませんの?
Pacerier 2017

19

モジュールの依存関係タブ(プロジェクト構造ダイアログ)でIdea 8を使用しています。「モジュールライブラリ」を追加します。そこで、追加するJarディレクトリを選択できます。次に、実行プロファイルが実行時に正しいモジュールのクラスパスとJDKを使用していることを確認します(これは実行構成ダイアログにあります)。



2

クラスパスにx:target / classesだけが必要だとします。次に、このフォルダーをクラスパスと%IDEA%\ lib \ idea_rt.jarに追加します。今では動作します。それでおしまい。


4
問題は、このフォルダーをIDEAのクラスパスにどのように追加するかです。
パチェリエ2017

0

クラスフォルダーを指定する必要はありません。Intellijはそれをロードできるはずです。「Project Compiler output」が空白の場合、このエラーが発生します。

以下の値が設定されていることを確認してください: てください:ProjectDir -outフォルダーへのProject Settings-> Project- > Project Compiler output

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.