Seltsamer Compiler-Unterschied zwischen Eclipse und javac

8

Der folgende Codeausschnitt (abstrahiert aus realem Code) wird kompiliert und läuft in Eclipse.

package1 / Outer.java:

%Vor%

package2 / Bar.java:

%Vor%

Es schlägt jedoch mit diesem Fehler beim Kompilieren mit javac:

fehl %Vor%

Wenn ich jetzt die Reihenfolge der Importanweisungen ändere, so:

%Vor%

... dann kompiliert es sowohl in Eclipse als auch in javac. Natürlich scheint die Reihenfolge der Importanweisungen eine Rolle zu spielen ... aber warum?

Anmerkungen:

  • Ich habe dies mit Java JDK 1.6.0_30 und Java JDK 1.7.0_21 getestet. Wenn das ein Fehler ist, der seither behoben wurde, wäre das gut zu wissen.
  • Es erscheint mir seltsam, dass der package1.Outer.Mid.Inner Import sogar notwendig ist, wenn die Inner Schnittstelle in Outer.java verschachtelt ist, aber sowohl Eclipse als auch javac scheinen es zu benötigen
  • Ich habe dieses Problem entdeckt, als ich versuchte, einen Ant-Build von Produktionscode mit einer ähnlichen Struktur auszuführen. In Eclipse hat alles gut funktioniert, aber das Ant-Skript hat es einfach abgelehnt.
Kevin K 12.07.2013, 00:08
quelle

1 Antwort

4

Dies sieht wie ein Fehler aus, wie in der Oracle-Fehlerdatenbank hier berichtet.

>

Nach dem JLS §7.5 , Die Reihenfolge der import -Anweisungen sollte keine Rolle spielen.

    
arshajii 12.07.2013, 00:39
quelle

Tags und Links