2010-11-04 8 views
3

Je suis assez nouveau à Java. Je suis encore en train de développer avec un simple éditeur de texte pour mieux comprendre comment l'inclusion des paquets fonctionne pour Java.Java - en utilisant un paquet téléchargé sans IDE

J'ai mon dossier Test.java, dont deux premières lignes sont les suivantes:

import java.util.List; 
import com.google.gson.Gson; 

J'ai essayé de télécharger le package google-gson et dézipper dans le répertoire où Test.java est.

 
|-- google-gson-1.5 
| |-- gson-1.5.jar 
| |-- gson-1.5-javadoc.jar 
| |-- gson-1.5-sources.jar 
| |-- LICENSE 
| `-- README 
`-- Test.java 

Mais lorsque je tente de lancer:

javac Test.java 

Je reçois ce message d'erreur:

Test.java:2: package com.google.gson does not exist 
import com.google.gson.Gson; 

Que dois-je faire pour faire fonctionner les choses (en utilisant la ligne de commande et un simple éditeur)?

Merci, Dan

+0

Finalement, j'ai fait ceci: javac -cp google-gson-1.5/gson-1.5.jar Test.java && java -cp google-gson-1.5/gson-1.5.jar: ./ Test – dan

Répondre

4

En supposant Test.java n'est pas affecté à un package:

Compile:

javac -cp .;google-gson-1.5\gson-1.5.jar Test.java 

Run:

java -cp .;google-json-1.5\gson-1.5.jar Test 

Si vous souhaitez ajouter d'autres fichiers JAR:

javac -cp .;google-gson-1.5\gson-1.5.jar;anotherlib\anotherlib.jar Test.java 

(Remarque: Windows syntaxe montrée. Sur * nix, utilisez : au lieu de ; et / au lieu de \)

Tant que vous avez l'intention d'utiliser les javac et java interfaces de ligne de commande directement, je vous recommande la création d'un build.bat et un run.bat (ou build.sh et run.sh sur * Nix) pour stocker les incantations javac et java que vous composez.Ces scripts facilitent à:

  1. rappeler la structure de commande build/run correct quelques jours plus tard
  2. envoyer un prêt-à-construire/prêt à exécuter une copie du projet à quelqu'un d'autre
  3. vous permettent de modifier les commandes dans un éditeur de texte, plutôt que sur la ligne de commande

Ant: une fois que vous êtes à l'aise avec l'utilisation java et javac sur la ligne de commande et par des scripts shell, il est peut-être temps d'enquêter sur la migration vers Fourmis framework puissant, ce qui est idéal pour gérer toutes vos configurations, tests et exécutions.

+0

"Je recommande fortement de créer un" build.bat "et un" run.bat ""?!? Utilisez la fourmi! C'est beaucoup plus facile. –

+1

Jason - Je suis d'accord. J'utilise et aime la fourmi. J'ai recommandé des scripts shell dans ce cas parce que notre humble demandeur est clairement très nouveau à Java et veut faire l'expérience de l'essentiel de Java. Tandis que la fourmi est moins opaque qu'un IDE, c'est toujours une couche d'abstraction. Le script shell que je recommande est essentiellement un moyen d'enregistrer une commande en ligne de commande pour une utilisation ultérieure. –

+1

Ou peut-être qu'il pourrait juste utiliser et IDE qui s'occupe de ça pour lui? OMI tout le but de cet exercice est de faire l'expérience de la douleur de l'utilisation de Java sans aucune aide. Ant va juste amortir le coup. –

3

Pour compilateur votre programme java, vous aurez besoin soit les sources dans le dossier qui correspond à l'emballage (par exemple paquet com.google.gson doit être com \ Google \ dossier gson) ou vous devrez placer votre fichier gson-1.5.jar dans le chemin de classe [Explanation here].

Je pense que la définition du chemin de classe via javac devrait être la solution recommandée dans ce cas.

+0

Merci Daniel. Comment puis-je placer gson-1.5.jar dans le CLASSPATH? – dan

+0

Il y a un lien maintenant. Je pense que 'javac -classpath root \ google-gson-1.5 \ gson-1.5.jar WhatYouWantToCompile' devrait fonctionner mais je ne suis pas sûr à cent pour cent. root correspond au dossier où se trouve google-gson-1.5 (si cela n'est pas clair) –

+0

Cela ne semble pas fonctionner. Il compile mais quand j'essaie de l'exécuter: Exception dans le fil "principal" java.lang.NoClassDefFoundError: com/google/gson/Gson \t à Test.main (Test.java:26) – dan