2016-10-06 4 views
0

Je veux compiler ma classe java comme ça: javac ResultSet.javaCompiler classe java avec javac ne fonctionne pas

Mais j'obtiens l'erreur suivante:

ResultSet.java:5: error: package data does not exist 
import data.Spieler; 
    ^
ResultSet.java:8: error: cannot find symbol 
    private ArrayList<Spieler> meineSpieler = new ArrayList<Spieler>(); 
        ^
symbol: class Spieler 
location: class ResultSet 
ResultSet.java:12: error: cannot find symbol 
    public native Spieler[] getSpieler(); 
       ^
symbol: class Spieler 
location: class ResultSet 
ResultSet.java:18: error: cannot find symbol 
    public ArrayList<Spieler> getMeineSpieler() { 
        ^
symbol: class Spieler 
location: class ResultSet 
ResultSet.java:8: error: cannot find symbol 
    private ArrayList<Spieler> meineSpieler = new ArrayList<Spieler>(); 
                  ^
symbol: class Spieler 
location: class ResultSet 

Comment puis-je importer la classe spieler? Dois-je définir le classpath ou existe-t-il un autre moyen de résoudre ce problème?

+0

ressemble à un problème avec Teh paquet ... vérifier que –

+1

« Dois-je mettre le classpath ...? » - exactement, comment le compilateur devrait savoir quelle classe importer (il pourrait y avoir plusieurs versions sur votre système)? En plus de cela, vous pouvez envisager d'utiliser un système de construction comme Gradle ou Maven pour faciliter cela. – Thomas

+1

aussi, je recommande d'utiliser un 'ide' pour ne pas prendre en compte les choses que vous ne voulez pas vraiment prendre en charge (comme les paquets en compilant manuellement) – SomeJavaGuy

Répondre

1

Go up un répertoire puis le compiler avec

javac data/JNIResultSet.java 

Mise à jour: Ok, votre classe JNIResultSet est dans le paquet model et il utilise d'autres classes dans le package data.

Ensuite, votre commande doit être la compilation comme suit:

javac -cp . model/JNIResultSet.java 

Les -cp . moyens de partie, que votre classpath inclut le répertoire courant. C'est la racine de votre hiérarchie de paquets. Ainsi, le compilateur peut trouver les fichiers * .java dans le paquet data et les compile aussi au besoin.

Vous voyez, cela peut être très compliqué. Pour plus de classes, ce sera presque ingérable. Donc, vous devriez vraiment envisager d'utiliser un système de construction comme Ant, Maven ou Gradle.

+0

mais JNIResultSet est dans un autre paquet puis la classe 'Spieler' – mafioso

+0

Ok, dans quel paquet est la classe' Spieler'? Utilisez ce chemin dans la commande 'javac'. – vanje

+0

J'ai 2 paquets appelés 'data' où la classe Spieler est et' model' où la classe JNIResultSet est – mafioso

1

utilisation -classpath lors de la compilation du fichier comme
javac -classpath <path-to-dependent-classes> JNIResultSet.java

Il est nécessaire que lorsque le Spieler est pas classpath!

pour plus d'aide se réfèrent javac oracle documentation

+0

Désolé, je suis nouveau dans ce domaine. A quoi ressemblerait mon javac si je voulais compiler la classe 'JNIResultSet'? Mon projet ressemble à ça -> 'src -> paquet de données (contient la classe personne) et le paquet modèle (contient JNIResultSet)' – mafioso

+1

du dossier 'src', exécutez **' javac -classpath ./ model/JNIResultSet.java' ** –