/ / Probleme beim Generieren von Ant-Skripten für Java beim Linken von Rhino - Java, Eclipse, Ameise, Build, Rhino

Probleme beim Erstellen von Ant-Skripten für Java beim Linken von Rhino - Java, Eclipse, Ameise, Build, Rhino

Wenn ich versuche, mein Projekt mit Ameisen zu bauen, bekomme ich: "java.lang.NoClassDefFoundError: sun / org / mozilla / javascript / intern / Scriptable"

Dies ergibt sich aus meiner Verwendung von Rhino (das gebündelte Java-Skript, das mit Oracle JDK geliefert wird)

  • Wenn ich das Projekt mit Eclipse baue, funktioniert alles gut.
  • Die Ant-Datei, die ich verwende, wurde von Eclipse generiert und funktioniert gut, mit Ausnahme der Java-Script-Abhängigkeiten.
  • Diese Abhängigkeiten befinden sich in der RT.jar, die mit dem Oracle-JDK geliefert wird.
  • Ich habe versucht sowohl jdk6_0_u41 und jdk7, und beide geben die gleichen Ergebnisse: Erfolg in Finsternis, scheitern mit Ameisen.
  • Ich habe versucht, auf Ubuntu 10 und 12 aufzubauen

Ich habe zwei weitere Vorschläge gesehen, die mir unannehmbar erscheinen:

  • Ein Thread schlug vor, RT.jar in das Projektbibliotheksverzeichnis zu kopieren. (RT ist vollständige Java-Laufzeit!)
  • Ein anderer Thread schlug vor, dass ich nicht verwenden sollte:Sonne / org / mozilla / javascript / intern. Aber da ich fortgeschrittene Manipulation mache (Aufruf von Objektmethoden, Registrierung von Rückrufen, etc.), sehe ich keine Alternative zur Verwendung der sun.org.mozilla.javascript.internal-Familie von Klassen.

Antworten:

0 für die Antwort № 1

Ein Kommentar von der Oracle-Website:

Benutzer sollten keinen Code schreiben, der von internen JDK-Implementierungsklassen abhängt. Solche Klassen sind interne Implementierung Details zum JDK und können ohne Vorankündigung geändert werden.

Dies ist kein Compiler-Problem. Javac verhält sich korrekt, entsprechend zu den Informationen in ct.sym bereitgestellt.

Das Problem gehört denen, die entscheiden, was verfügbar sein soll (und was sollte von) ct.sym versteckt werden

Sie können vorschlagen, einzuschließen Rhinos Glas zu Ihrem Projekt und wiederholen Sie es in den Rhino-Klassen des Originals, wo "Internals" nicht vor Benutzern verborgen sind