Comment compiler java package de structures à l'aide de javac
Je suis en train de compiler (à partir de la ligne de commande) un package java que les importations d'un autre paquet de mon propre. J'ai été à la suite d'une tutoriel en ligne mais il me semble que j'ai une erreur quand j'essaie de compiler le dernier fichier java (CallPackage.java).
Voici la structure du fichier:
+ test_directory (contains CallPackage.java)
-> importpackage
-> subpackage (contains HelloWorld.java)
Est ici CallPackage.java:
///CallPackage.java
import importpackage.subpackage.*;
class CallPackage{
public static void main(String[] args){
HelloWorld h2=new HelloWorld();
h2.show();
}
}
et c'est ici HelloWorld.java:
///HelloWorld.java
package importpackage.subpackage;
public class HelloWorld {
public void show(){
System.out.println("This is the function of the class HelloWorld!!");
}
}
Tenté Étapes
- Aller à la sous-paquetage et compiler HelloWorld.java avec
$javac HelloWorld.java
. - Aller à test_directory et compiler CallPackage.java avec
$javac CallPackage.java
.
Cela me donne une erreur de la dernière commande:
CallPackage.java:1: package importpackage.subpackage does not exist
import importpackage.subpackage.*;
^
CallPackage.java:4: cannot find symbol
symbol : class HelloWorld
location: class CallPackage
HelloWorld h2=new HelloWorld();
^
CallPackage.java:4: cannot find symbol
symbol : class HelloWorld
location: class CallPackage
HelloWorld h2=new HelloWorld();
^
3 errors
Comment puis-je compiler à la fois des paquets? Merci beaucoup pour toute aide!
cela va vous aider. thejavageek.com/2013/07/21/...
Il est préférable si vous utilisez un IDE comme Eclipse pour exécuter des programmes java, car il peut créer des packages automatiquement.
Il est préférable si vous utilisez un IDE comme Eclipse pour exécuter des programmes java, car il peut créer des packages automatiquement.
OriginalL'auteur Pswiss87 | 2013-10-15
Vous devez vous connecter pour publier un commentaire.
Êtes-vous sûr importpackage/sous-paquetage est dans votre classpath?
http://docs.oracle.com/javase/7/docs/technotes/tools/windows/javac.html
la question ne finissent par être le chemin de classe. J'nécessaires à l'exécution de toutes les java et javac commandes avec "-cp ." Par exemple: $javac -cp . CallPackage.java et $java -cp . CallPackage
OriginalL'auteur Jazzy Josh
Le problème est que le chemin de classe doit être définie pour chaque commande (javac et java):
Tenté Étapes
au lieu d'aller à la sous-paquetage, de compiler HelloWorld.java à partir de la top_level:
$javac -cp . importpackage/subpackage/HelloWorld.java
compiler CallPackage.java de la même manière:
$javac -cp . CallPackage.java
exécuter le fichier en utilisant le chemin de classe aussi:
$java -cp . CallPackage
NOTE: en cours d'exécution "$java CallPackage" donnera une erreur: "Erreur: impossible de trouver ou charger la classe principale de CallPackage"
En résumé, au cours de chaque étape, le chemin de classe doit être spécifié. Il a travaillé après avoir exécuté en tant que tel.
OriginalL'auteur Pswiss87
(1)d'abord compiler le code
javac -d importpackage.sous-paquetage.HelloWorld
(2) et ensuite compiler le CallPackage.java
javac CallPackage.java
parce que vous compilez le HelloWorld à l'intérieur de la sous-paquetage.
OriginalL'auteur Dev
Même situation pour moi. Et j'en suis venu à prendre sur elle par la compilation des classes en même temps.
Par exemple, voici mon projet:
BeerExpert.java:
BeerSelect.java:
Comme vous pouvez le voir: BeerSelect.java est d'essayer d'importer les classes dans com.exemple.modèle le paquet.
Pour la première fois, j'ai compilé BeerExert.java d'abord par la commande:
--> javac -d classes src/com/example/model/BeerExpert.java
Alors:
--> javac -d classes src/com/example/web/BeerSelect.java
Et le résultat a été:
-->... error: package com.example.model does not exist
Je savais donc que la compilation de plusieurs classes séparément ne fonctionnera pas dans ce cas.
Après la souffrance sur google, j'ai trouvé cette méthode très simple pour résoudre le problème:
Venons de compiler tout à la fois:
Enfin, voici ce que j'ai:
Espère que ça aide.
OriginalL'auteur Vĩnh Thụy Trần