2012-04-11 3 views
1

Ich habe 3 Klassen CustomerAddress, Customer und CustomerMain.javac -cp: kann kein Symbol finden

Kunde hat eine Import-Anweisung:

import org.abc.customers.CustomerAddress; 

Während CustomerMain eine Import-Anweisung hat:

import org.abc.customers.CustomerAddress; 
import org.abc.customers.Customer; 

Das Paket für alle diese Klassen sind

package org.abc.customer 

nun dieses Programm funktioniert gut auf Eclipse, aber wenn ich versuche, zu kompilieren und auf cmd-Eingabeaufforderung zu laufen, würde es nicht kompilieren

javac CustomerAddress.java 

kompiliert fein

dann da Kunden auf Customer hängt

Ich gebe

javac -cp . Customer.java 

aber der Compiler beschwert sich

error cannot find symbol CustomerAddress 

Antwort

4
  1. kompilierten Klassen innerhalb einer Ordnerstruktur vorhanden sein müssen, die ihre Paketstruktur übereinstimmt. Zum Beispiel muss eine Klasse com.foo.bar.A innerhalb der Ordner com/foo/bar/ existieren.
  2. Es ist wirklich viel einfacher, so etwas mit einem automatisierten Build-Tool wie Ameisen oder Maven zu tun.

Wenn Sie entschlossen sind, über die Befehlszeile zu erstellen, müssen Sie zunächst die unabhängige Klassen kompilieren:

javac -d com/abc/customers/ CustomerAddress.java Customer.java CustomerMain.java 

die sollte die Klassen kompilieren und geben sie irgendwo, dass javac in der Lage sein um sie zu lösen.

1

Ich weiß es nicht, was Sie Fragen, aber kann ich vorschlagen, den eingebauten Export von Eclipse zu verwenden?

Rechts klicken Projekt -> Export -> Runnable JAR-Datei -> Stellen Sie sicher, Startkonfiguration richtig verstanden habe -> den Rest wählen -> Klicken Sie Finish -> Ihr Glas

1

Sie verwenden versucht, durch Kompilieren, auf diese Weise

javac *.java 
0

Ich weiß nicht, ob seine ein Artefakt der Frage der Entsendung, aber Ihr Paket Erklärung hat customer ohne ‚s‘, und Ihre Import-Anweisungen haben customersmit ein ‚s‘. Innerhalb desselben Pakets müssen Sie jedoch keine import machen.

+0

Dank..Ja, es ist ein Artefakt der Veröffentlichung der Frage. Die Importanweisung im selben Paket ist redundant, hat aber auch Nebenwirkungen oder ist für den Code harmlos. – LivingThing

+0

Ich glaube, es ist harmlos, solange deine Paketnamen richtig geschrieben sind :-) –

Verwandte Themen