Comment puis-je importer des bocaux dans mon programme java?
J'ai téléchargé deux pots. Je veux importer certains de leurs classes de contenu. Comment puis-je faire cela?
C'est pour ma algorithmes de la classe. J'ai essayé de suivre les instructions sur le site suivant, en vain.
http://algs4.cs.princeton.edu/code/
Il y a un programme d'installation d'OSX (je suis sous Mountain Lion), qui aurait ajoute les pots à votre classpath. Malheureusement, il installe également le Dr Java. Je préfère l'utiliser juste Sublime et le Terminal. Je suppose qu'il serait assez facile juste...
import java.stdlib;
dans mon Percolation.java fichier, mais javac-ing que le programme donne un "package stdlib n'existe pas", comme le fait
import stdlib;
J'ai ajouté de l'emplacement de stdlib.jar et algs4.jar à mon Terminal CLASSPATH manuellement par l'intermédiaire de:
export CLASSPATH=$CLASSPATH:/Users/Michael/path/to/jar/algs4.jar:/Users/Michael/path/to/jar/algs4.jar
export CLASSPATH=$CLASSPATH:/Users/Michael/path/to/jar/stdlib.jar:/Users/Michael/path/to/jar/stdlib.jar
J'ai aussi tenté
javac -cp $CLASSPATH:/Users/Michael/path/to/jar/algs4.jar:/Users/Michael/path/to/jar/stdlib.jar Percolation.java
Mais j'ai toujours un
javac Percolation.java
Percolation.java:1: cannot find symbol
symbol : class stdlib
location: package java
import java.stdlib;
^
Percolation.java:2: package java.algs4 does not exist
import java.algs4.WeightedQuickUnionUF;
^
Ce qui se passe ici?
Aussi est-il possible d'ajouter définitivement ces valeurs dans mon CLASSPATH dans OS X mountain lion. J'ai exécuter la commande avec chaque nouveau Terminal.
stdlib
? Ce qui est Dr Java
? J'utilise un maven pour importer/télécharger les dépendances j'ai besoin de qui j'ai exécuté à partir d'un IDE. Je ne connais pas de programme d'installation qui ajoute des bocaux, vous pourriez voulez que votre chemin de classe.Lawrey Dr Java est un IDE, stdlib est l'un des pots, j'ai téléchargé et j'essaye de l'importer dans mon programme. J'ai tenté d'ajouter manuellement ces jarres à mon classpath, sans succès.
Je crois que c'est interdit de nommer un paquet comme
java.stdlib
. Lors de l'exécution, un java.lang.SecurityException sera levée. Ainsi l'importation est probablement faux.OriginalL'auteur Michael Gruber | 2012-09-18
Vous devez vous connecter pour publier un commentaire.
Si vous utilisez le Terminal pour compiler et lancer votre programme, puis dans la fenêtre de Terminal, commencez par le réglage de la
CLASSPATH
:Ensuite, vous pouvez taper
echo $CLASSPATH
et de voir que les pots sont référencés.Maintenant, dans la même fenêtre de Terminal, l'utilisation de javac pour compiler votre classe. Réglage de la
CLASSPATH
comme ci-dessus ne s'applique à la fenêtre de Terminal et de tout processus lancé.Alternativement, vous pouvez passer à la
CLASSPATH
à javac:À persister cette
CLASSPATH
pour les futures sessions de Terminal, ajouter leexport
ligne ci-dessus pour le fichier .profil dans votre répertoire home.vous avez besoin de modifier le /chemin/de partie pour tenir compte de l'emplacement des pots sur votre système de fichiers. J'ai utilisé path/to/ tout comme un espace réservé. Dans le Terminal, allez à l'endroit où les pots et le type
pwd
. cela permettra d'imprimer ce que vous devez mettre dans votreCLASSPATH
Oui, je suis au courant. echo $CLASSPATH sorties :/Users/Michael/Dropbox/Algorithms/includes/algs4.jar:/Users/Michael/Dropbox/Algorithms/includes/algs4.jar --- je suis encore en train de la même javac erreurs.
OriginalL'auteur pb2q
Il est obsolète pour répondre à cette question, mais peut-être qu'il sera utile pour les futurs participants de Princeton Algorithmes de parcours.
Après l'ajout de chemin de classe dans l'environnement java obtenir des classes à partir des paquets, mais encore va générer des erreurs sur la commande d'importation. Vous devez supprimer l'importation algs4 et stdlib à partir de fichiers source et compilation se déroulera sans heurts.
Cette solution fonctionne sur Ubuntu 12.04 avec zsh.
OriginalL'auteur sanddog
Vous avez probablement le classpath trucs à droite. La classe que vous tentez d'importer ne peut pas être appelé
java.stdlib
. Vous devez importer le nom de package complet ... probablement quelque chose commeorg.somecompany.ourlibrary.stdlib
. Ainsi, vous devezen haut de votre
Percolations.java
fichier avec le reste des déclarations d'importation.Dans de nombreuses IDEs, si vous utilisez une classe de la bibliothèque qui est dans votre chemin de classe, il proposera et ajouter une importation de cette catégorie pour vous. Vous ne devriez pas avoir besoin de savoir où la plupart des cours sont en terme de paquets.
OriginalL'auteur Chris Clark
Est votre Percolation de programme contenue dans son propre paquet? Si oui, essayez de le mettre dans le package par défaut en commentant un paquet consolidés à partir de vos fichiers et de le recompiler.
Aussi, rien dans
algs4
est dans lejava
package, c'est tout, c'est propre chose.OriginalL'auteur MrCodeBlok
Si vous utilisez Eclipse (comme je le fais), sélectionnez le projet en cours, puis vous ouvrez les propriétés du projet dans les menus. Sur la gauche, vous sélectionnez "Java Build path", puis vous sélectionnez l'onglet bibliothèques. Maintenant, vous cliquez sur le bouton "Add external Jars" et de vous pointer à votre fichiers jar, et vous avez terminé.
Bonne chance.
OriginalL'auteur user1479498
Lancement
javac
avec le-classpath <path_to_jar>
option. Ou de modifier laCLASSPATH
variable d'environnement afin qu'il contient le POT avec les classes que vous souhaitez utiliser.OriginalL'auteur Xavi López
J'ai connu le même problème pendant le travail sur ce parcours, mais pour windows. Je vais laisser ce commentaire ici, dans le cas où il aidera quelqu'un.
Si vous utilisez DrJava vous n'avez pas besoin de tout
import
énoncés dans le code. Si vous avez suivi les étapes d'installation décrites dans le cours, tout est configuré pour vous.Mais ici peut être un problème - il met
jar
fichiers dans votre répertoire utilisateur, qui peut contenir du contenu inapproprié symboles(lettres russes dans mon cas). Vous devez vérifier dans Edit -> menu Préférences. Vous pouvez voir qu'il yalgs4.jar
etstdlib.jar
chemins. Assurez-vous que ce chemin d'accès sont corrects et le point réel des fichiers existants.J'ai juste déplacé tous les fichiers nécessaires à l'autre dir et changé les chemins dans ce menu. Il a résolu ce problème pour moi.
OriginalL'auteur RaskolnikOFF
J'ai perdu beaucoup de temps avec l'importation de la classe, a tenté le CL option de "javac -cp .;stdlib.jar mad.java" etc, mais utilisé pour obtenir la même erreur que vous avez mentionné.
Je commente ensuite les importer tout à fait et fait en sorte que le DrJava préférences eu les 2 chemins de classe ajoutée + le %CLASSPATH% variable pour avoir la bonne valeur. Est tout simplement fonctionne maintenant.
Bonne chance!
OriginalL'auteur jrmma
juste le nom du package par défaut alors cela fonctionnera très bien . après que vous n'avez pas besoin d'importer anyting il suffit d'exécuter du code fourni dans
chapitre comme
.
OriginalL'auteur Sam
Ma solution a été d'ajouter 2 nouveaux systèmes de construction à ma Sublime éditeur de texte: un de le compiler et de l'autre à s'exécuter. Utiliser des Outils->Build_system->New_build_system... à partir du menu principal avec ces deux extraits de code:
pour la compilation (j'ai nommé le fichier "algs-compiler.sublime_build"):
pour l'exécution ("algs.sublime_build")
N'oubliez pas de remplacer les chemins jar fichiers ici avec ceux correcte de votre système.
Je comprends que cette question est assez vieux, mais j'espère que cela aidera quelqu'un.
OriginalL'auteur slava
Si vous avez l' "ne peut pas être résolu à un type d'erreur", et ont essayé d'ajouter le stdlib.jar ou algs4.jar fichiers, voici la solution:
Les bibliothèques dans stdlib.jar et algs4.jar sont dans le package "default". En Java, vous ne pouvez pas accéder à des classes dans le package par défaut à partir d'un nom de package. Si vous avez besoin d'utiliser les bibliothèques avec un nom de package, vous pouvez utiliser ces versions de package:
stdlib-package.jar et algs4-package.jar.
Vous pouvez télécharger ces fichiers ici:
http://algs4.cs.princeton.edu/code/
Ensuite, vous pouvez ajouter automatiquement l'importation:
importation edu.princeton.cs.algs4.ClassName
OriginalL'auteur live-love
Ouvrir votre Sublime
Choisir les Outils->Système de Build->Nouveau Système de construction
Ajouter le code ci-dessous dans le fichier
Cela peut dire le sublime pour exécuter les commandes
J'espère que cela aidera ceux qui sont la suite de l'Algorithme de Cours de l'Université de Princeton
OriginalL'auteur Renfei Wang
J'ai eu ce même problème. Renfei Wang solution a fonctionné pour moi (je n'ai pas assez de points, pas encore de commentaires directement sur sa réponse).
Sublime, accédez à
Preferences: Browse Packages>JavaC.sublime_build
.Voici ce que le mien ressemble:
/Users/jason/Documents/lib/*:/
permet Sublime connaître l'emplacement du répertoire qui contient mes paquets, de sorte que maintenant, quand je build, il charge les paquets en premier.OriginalL'auteur jesellers