2017-06-30 3 views
-1

Ich habe zwei Klassen X und Y in dem gleichen Paket.
In Klasse X gibt es import org1.A
In Klasse Y gibt es import org2.A und auch A.somemethod().
Während der Laufzeit bekomme ich NoClassDefFoundError, wenn A.somemethod() aufgerufen wird. Was könnte der Grund dafür sein?
Ich dachte früher, dass anstelle von class A von org2 versucht, JVM class A von org1 zu verwenden, aber ich bin nicht ganz sicher, warum und wie das passiert. Werden zur Laufzeit Importanweisungen verwendet?Wie nützlich sind import Anweisungen zur Laufzeit

+5

"Wird zur Laufzeit Importanweisungen verwendet?" Nein. Sie werden nur im Code verwendet und vom Compiler auf den vollständig qualifizierten Namen erweitert. –

+0

ein Klassenpfad Problem vielleicht " –

+0

@ ΦXocê 웃 Пepeúpa ツ" vielleicht "-> definitiv. –

Antwort

1

Überprüfen Sie org1.A und org2.A beide Klassen zum Klassenpfad hinzugefügt oder nicht, zur Laufzeit Compiler wird versuchen, die Klasse verweisen, die in Ihrer Src-Datei importiert wurde.

Überprüfen Sie org1.A und org2.A beide sind kompiliert und generiert .Class-Datei für diese im Zielverzeichnis.

Für genauere Antwort, Sie besser Ihr Code-Snippet.

Hoffe, das hilft, upvote, wenn es hilft.