質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.31%
Visual Studio Code

Visual Studio Codeとは、Microsoft社が開発したマルチプラットフォーム対応のテキストエディタです。Visual Studioファミリーの一員でもあります。拡張性とカスタマイズ性が高く、テキストエディタでありながら、IDEと遜色ない機能を備えることができます。

Java Development Kit

Java Development Kit(JDK)とは、Javaでの開発のために要するソフトウェアをまとめたパッケージです。コンパイラの「Javac」やクラスライブラリの「jar」など、Java開発者向けツールが含まれています。

Q&A

1回答

1997閲覧

Javaプロジェクトから.jarファイルを読み込む

chappy100

総合スコア1

Visual Studio Code

Visual Studio Codeとは、Microsoft社が開発したマルチプラットフォーム対応のテキストエディタです。Visual Studioファミリーの一員でもあります。拡張性とカスタマイズ性が高く、テキストエディタでありながら、IDEと遜色ない機能を備えることができます。

Java Development Kit

Java Development Kit(JDK)とは、Javaでの開発のために要するソフトウェアをまとめたパッケージです。コンパイラの「Javac」やクラスライブラリの「jar」など、Java開発者向けツールが含まれています。

0グッド

0クリップ

投稿2023/09/18 14:47

実現したいこと

  • VSCodeでJavaプロジェクトを作成した
  • /libフォルダに依存関係のあるモジュールhoge.jarを配置した
  • モジュールhoge.jarを読み込んで使いたい

前提

★環境
・Windows 11
・Java 20
・VSCode 1.82.2(Language Support for Java)

★編集したファイル
プロジェクト配下の/.vscode/settings.jsonに、下の設定を加えました。
{
"java.jdt.ls.vmargs": "--module-path 'bin;lib'",

}
module-info.javaは以下のようにしています。

java

1module myproj { 2 requires hoge; 3}

どのようにしたら、モジュールを認識してくれるのでしょうか。

発生している問題・エラーメッセージ

hogeの部分で以下のようなエラーとなってしまいます。

hoge cannot be resolved to a module

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

Javaプロジェクトで外部の.jarファイルを読み込むためには、モジュールパスの設定やモジュール情報の正しい設定が必要です。おそらく、設定に誤りがあるため、"hoge cannot be resolved to a module" というエラーが発生していると思われます。以下のステップを確認して、問題を解決できるか確認してみてください。

  1. プロジェクト構造を確認:

    • プロジェクトのフォルダ構造を確認し、"lib" フォルダに "hoge.jar" ファイルが存在することを確認してください。
  2. settings.json の設定を確認:

    • .vscode/settings.json ファイルの設定が正しいことを確認してください。モジュールパスを正しく指定する必要があります。次のように設定してみてください。

json

1{ 2 "java.project.referencedLibraries": [ 3 "lib/hoge.jar" 4 ], 5 "java.jdt.ls.vmargs": "--module-path 'bin;lib'", 6 // 他の設定... 7}
  1. モジュール情報を確認:
    • module-info.java ファイルが正しく設定されていることを確認してください。次のように設定されているか確認してください。

java

1module myproj { 2 requires hoge; 3}
  1. ビルド:

    • プロジェクトをビルドし、モジュール情報が正しく認識されていることを確認してください。
  2. エラーメッセージを解析:

    • エラーメッセージがまだ表示される場合、エラーがどの部分で発生しているか詳細を確認してください。正確なエラーメッセージが問題の特定に役立ちます。

これらのステップを確認し、問題が解決しない場合、詳細なエラーメッセージやプロジェクトの設定情報を提供していただければ、さらに具体的なアドバイスを提供できるかもしれません。

投稿2023/09/18 15:50

KEMONO_PANTSU_b

総合スコア15

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

chappy100

2023/09/19 05:50

ご回答ありがとうございます。 ご指摘いただいた以下の件はすべて問題ないことを確認しました。 ・プロジェクト構造を確認 ・settings.json の設定を確認 ・モジュール情報を確認 しかし、module-info.javaを開くと、エディタ(VSCode)ではhogeに波線が付いて、「hoge cannot be resolved to a module」のようなエラーが表示されるのは変わりありません。 作成したmyproj、hogeプロジェクトは、以下にアップしております。 https://firestorage.jp/download/5d48685bb9f0dd8ebed56b79c897b29f813d16f9 ★他におこなったこと ・絶対パスの変更 相対パスなのが悪いのかと思い、絶対パスにもしてみましたが、リロード時にJAVA PROJECTSペインが起動しなくなってしまいました(ずっと読み込み状態になって、エラーも出ません)。 "java.jdt.ls.vmargs": "--module-path 'C:\\myproj\\bin;C:\\myproj\\lib'", ・すべてをコマンドラインから確認 PowerShellから以下のコマンドで実行した場合には、正しく動作しています。 PS C:\myproj\src> $Env:Path += ";c:\jdk-20.0.2\bin" PS C:\myproj\src> javac --enable-preview -source 20 --module-path ".;../lib" myproj/App.java module-info.java PS C:\myproj\src> java --enable-preview --module-path ".;../lib" --module myproj/myproj.App ※--enable-previewを付けているのは、hoge.jarをVSCodeから出力した時に--enable-previewが付いているようで、「--enable-previewがないと、コンパイルできないよ」と怒られたためです。 ただ、せっかくVSCodeを使っているのに、コマンドをいちいち打たなければいけないのもめんどうなので、できればUIで完結しないのかなと思ったしだいです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.31%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問