2017-09-30 15 views
4

私はJava 9モジュールを作成しようとしていましたが、私が何をしていても、「パッケージが空であるか存在しません」というエラーが表示されます。私は予想されるディレクトリレイアウトをオンラインで検索しようとしましたが、私が考えることができるディレクトリレイアウト上のすべてのバリエーションを試しましたが、何も動作しません。Java 9モジュールのディレクトリレイアウト

例えば、ここで私は

bar.foo/module-info.java

module bar.foo { 
    exports bar.foo; 
} 

bar.foo/bar/foo/wtf.java

package bar.foo; 

public class wtf { 
} 

をしようとした1つのレイアウトは、しかし、コンパイルはまだいつものように同じエラーを与えています。動作するはず代わり

> javac bar.foo/module-info.java 
bar.foo/module-info.java:2: error: package is empty or does not exist: bar.foo 
    exports bar.foo; 
      ^
1 error 

答えて

3

コマンドです:

javac bar.foo/module-info.java bar.foo/bar/foo/wtf.java 

ている理由は、あなたの場合には、すなわちbar.foo存在するパッケージを必要とするクラスをコンパイルしようとしています。しかし、あなたが作成していないので、コンパイラは上記のエラーを投げます。

これはディレクトリレイアウトではなく、コンパイラによって評価された.classです。他のクラス(bar.foo/bar/foo/wtf.java)を指定すると、そのパッケージ内にwtf.classが作成されます。したがって、コンパイラはmodule-info.classも後でコンパイルします。

関連する問題