Ten błąd jest dziwny i nie mogę mieć z tego wiele sensu. Zainstalowałem aktualizację EclipseRCP 3.5.1, Java SE 1.6 16 i przełączono na SWT 3.5. Stworzyłem nowy projekt, skonfigurowałem zależności i próbowałem skompilować. Podczas próby importowania, użyj następujących:Eclipse 3.5.1 Błąd kompilatora: Typ OutputFormat jest niedostępny z powodu ograniczenia wymaganej biblioteki ../rt.jar
import com.sun.org.apache.xml.internal.serialize.OutputFormat;
import com.sun.org.apache.xml.internal.serialize.XMLSerializer;
pojawia się błąd:
Access restriction: The type XMLSerializer is not accessible due to restriction on required library C:\Program Files\Java\jre6\lib\rt.jar.
Już google, czytać niektóre reakcje here..and problem jest nadal. Zabawne jest to, że jeśli korzystam z poprzedniego EclipseRCP (wersja: 3.4.2), ten problem nigdy nie występuje. Wersja 3.4.2 używa tej samej wersji JRE, a ja właśnie przetestowałem wersję SWT. Działa w porządku. Domyślam się, że problem polega na jakiejś wtyczce nowego IDE. Jakieś pomysły?
P.S. Znalazłem to article. Ale nie lubię lub chcę zmienić kod, jeśli nie muszę. Co jest źródłem problemu w pierwszej kolejności, a rozwiązanie zostanie zastosowane ..
Tak, jestem świadomy ustawienia zaćmienia, aby obejść problem, ale to samo ustawienie było w starszej wersji RCP, a ja nie miałem problemu. Nigdy wcześniej o tym nie słyszałem ... więc dlaczego ten pakiet com.sun. istnieje nawet, jeśli jego użycie nie jest zalecane? – hypercube
Celem importu było odczytywanie/zapisywanie plików XML, ponieważ rozumiem, że JDK1.6 ma wbudowane parsery XML. Sugerujesz, że nie można tego zrobić, ponieważ nie powinno się używać com.sun. *? – hypercube
Jest używany wewnętrznie przez publiczne API, prawdopodobnie JAXB lub coś podobnego. Jeśli potrzebujesz klas bezpośrednio, powinieneś zamiast tego dodać Apache Xerces-J jako bibliotekę i użyć zamiast tego klas org.apache.xml.serialize.OutputFormat i org.apache.xml.serialize.XMLSerializer. – jarnbjo