2017-09-30 6 views
4

J'ai essayé d'écrire un module Java 9, mais peu importe ce que je fais, j'ai l'erreur "le paquet est vide ou n'existe pas". J'ai essayé de rechercher en ligne la disposition de répertoire attendue, et j'ai essayé toutes les variations sur la disposition de répertoire que je peux penser, mais rien ne fonctionne.Disposition du répertoire pour les modules Java 9

Par exemple, voici une mise en page j'ai essayé

bar.foo/module-info.java

module bar.foo { 
    exports bar.foo; 
} 

bar.foo/bar/foo/wtf.java

package bar.foo; 

public class wtf { 
} 

Cependant, la compilation donne toujours la même erreur que d'habitude.

> 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 

Répondre

3

La commande à la place qui devrait fonctionner est:

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

La raison, vous essayez de compiler une classe qui nécessite un ensemble d'exister à savoir bar.foo dans votre cas. Mais puisque vous n'en avez pas créé un, le compilateur renvoie l'erreur mentionnée.

Il ne s'agit pas de la mise en page du répertoire mais du .class évalué par le compilateur. Fournir votre autre classe (bar.foo/bar/foo/wtf.java) crée le wtf.class à l'intérieur de ce paquet et par conséquent le compilateur compilerait également le module-info.class.