|
|
||||||
|
#1
|
|
|
|
|
Hallo,
ich bin von Eclipse 3 M6 auf das aktuelle Release umgestiegen und habe zwei dicke Probleme mit meiner RCP Anwendung. 1. Problem: ********* Im selben Verzeichnis aus welcher der folgende Aufruf erfolgt befindet sich eine Datei config.ini mit Datenbankparametern. Diese lese ich ein und baue eine Datenbankverbindung auf. Bei der neusten Eclipse Version versteht er das nicht mehr (Aufruf aus Eclipse heraus). Die URL stimmt nicht mehr. URL urlIni = this.getClass().getResource("config.ini"); System.out.println("url INI: " + urlIni); System.out.println("url getPath: " + urlIni.toString()); System.out.println("url getFile: " + urlIni.getFile()); liefert nur das seltsamerweise ohne vollen Pfad (file:/D:/... müsste es sein):: url INI: bundleresource://13/de/domainame/management/config.ini url getPath: bundleresource://13/de/domainname/management/config.ini url getFile: /de/domainname/management/config.ini Mit Eclipse M6 ging es fehlerfrei. Es kann eigentlich nur mit der Launch Konfiguration und dem Workspace zusammenhängen aber wieso und was könnte da falsch sein? Keine Ahnung was die 13 soll, war auch mal ne 14 etc. 2. Problem: ********* Das zweite Problem ist ähnlich aber doch verschieden. In dem Ordner icons habe ich benutzerdefinierte Bilder, also nicht irgendwo innerhalb von classes, wie es halt so üblich bei eclipse ist. Ich habe eine von AbstractUIPlugin abgeleitete Klasse welche die folgende Methode hat: public static ImageDescriptor getImageDescriptor(String name) { String iconPath = "icons/"; try { URL installURL = getDefault().getDescriptor().getInstallURL(); URL url = new URL(installURL, iconPath + name); return ImageDescriptor.createFromURL(url); } catch (MalformedURLException e){ return ImageDescriptor.getMissingImageDescriptor(); } } Diese Methode habe ich dann von meinen ganzen Klassen immer aufgerufen falls eigenes Bild gebraucht. URL installURL .. verursacht nun aber sowas: java.lang.IllegalStateException at org.eclipse.core.internal.runtime.CompatibilityHel per.getPluginDescriptor(Co mpatibilityHelper.java:52) at org.eclipse.core.runtime.Plugin.getDescriptor(Plug in.java:258) ..... Hmm getDescriptor() und getDefault() sind beide nun deprecated. In der Doku steht als Hinweis: man solle bundle.getEntry("/"); nun nehmen. Aber ResourceBundle hat keine Methode getEntry()??? http://dev.eclipse.org/viewcvs/index...n.html?rev=1.3 "The best approach is to either put the files in a real, unique, package or remove such files from the classpath and access them via the Bundle.getEntry() API." Und ersterer Ansatz heist also kein icons Verzeichnis mehr auf Höhe wie src und bin und würde aber sicher zu meinem 1. Problem führen. Bin für die kleinsten Hinweise dankbar! Nette Grüße Franz |
|
|
|
#2
|
|
|
|
|
Nach Lesen eines eclipse.platform NG Beitrages von gestern
"Newbie Eclipse 3 plugin development questions - help required" (stöhn) fand ich die richtigen Lösungen. > 1. Problem: > ********* > Im selben Verzeichnis aus welcher der folgende Aufruf erfolgt befindet sich > eine Datei config.ini mit Datenbankparametern. > Diese lese ich ein und baue eine Datenbankverbindung auf. Bei der neusten > Eclipse Version versteht er das nicht mehr (Aufruf aus Eclipse heraus). Die > URL stimmt nicht mehr. > > URL urlIni = this.getClass().getResource("config.ini"); > System.out.println("url INI: " + urlIni); > System.out.println("url getPath: " + urlIni.toString()); > System.out.println("url getFile: " + urlIni.getFile()); > > liefert nur das seltsamerweise ohne vollen Pfad (file:/D:/... müsste es > sein):: > > url INI: bundleresource://13/de/domainame/management/config.ini > url getPath: bundleresource://13/de/domainname/management/config.ini > url getFile: /de/domainname/management/config.ini > > Mit Eclipse M6 ging es fehlerfrei. Es kann eigentlich nur mit der Launch > Konfiguration und dem Workspace zusammenhängen aber wieso und was könnte da > falsch sein? Keine Ahnung was > die 13 soll, war auch mal ne 14 etc. Die URL muss seit 3.0 noch umgewandelt werden: URL url = null; try{ url = Platform.asLocalURL(urlIni); System.out.println("created url: " + url.getPath()); } catch (IOException e1){ e1.printStackTrace(); } Wieso nur solch ein Firlefanz?! [..] > try { > URL installURL = getDefault().getDescriptor().getInstallURL(); > URL url = new URL(installURL, iconPath + name); > return ImageDescriptor.createFromURL(url); > } catch (MalformedURLException e){ > return ImageDescriptor.getMissingImageDescriptor(); > } > } > > Diese Methode habe ich dann von meinen ganzen Klassen immer aufgerufen falls > eigenes Bild gebraucht. > > URL installURL .. verursacht nun aber sowas: > java.lang.IllegalStateException > at > org.eclipse.core.internal.runtime.CompatibilityHel per.getPluginDescriptor(Co > mpatibilityHelper.java:52) > at org.eclipse.core.runtime.Plugin.getDescriptor(Plug in.java:258) > .... > > Hmm getDescriptor() und getDefault() sind beide nun deprecated. > In der Doku steht als Hinweis: man solle bundle.getEntry("/"); nun nehmen. > Aber ResourceBundle hat keine Methode getEntry()??? > http://dev.eclipse.org/viewcvs/index...n.html?rev=1.3 > "The best approach is to either put the files in a real, unique, package or > remove such files from the classpath and access them via the > Bundle.getEntry() API." > Und ersterer Ansatz heist also kein icons Verzeichnis mehr auf Höhe wie src > und bin und würde aber sicher zu meinem 1. Problem führen. public ImageDescriptor getImageDescriptor(String name){ String iconPath = "icons/"; try { URL installURL = this.getBundle().getEntry("/"); //URL installURL = getDefault().getDescriptor().getInstallURL(); URL url = new URL(installURL, iconPath + name); return ImageDescriptor.createFromURL(url); } catch (MalformedURLException e){ return ImageDescriptor.getMissingImageDescriptor(); } } Bundle (this.getBundle()) ist eine Eclipse Klasse. Methode nicht mehr static daher muss man vorher mit getDefault() die Instanz besorgen. Die Eclipse 3 Klassen kommen mir komplizierter vor. Franz |
|
|
| Ähnliche Themen | |
| Eclipse Dialoge bekommen kein Release Event mehr Hi, hab hier letzten Freitag ein System-Update (sid-System) gemacht und leider seitdem ein Problem mit manchen Dialogen in Eclipse der "Ok" (meist gleichzeitig Default-)... |
|
| Eclipse findet javac nicht mehr Hallo zusammen, nachdem ich lange nichts mehr in Java programmiert hatte (will sagen, bin eher C- und PHP-Programmierer), wollte ich das gerade mal wieder tun. Tja, und mein... |
|
| [Eclipse] Start einer eigenständigen Eclipse Anwendung aus Eclipse mit Bibliotheken Hallo, ich habe folgendes Problem. Ich habe eine Anwendung auf Eclipse Basis entworfen. Als Basis diente die gute Einführung hier [..]. Während der Entwicklung starte ich... |
|
| Source in src, Classes in bin... jetzt findet Eclipse meine Resources nicht mehr... Hallo zusammen! Bisher hatte ich meine Projekte immer so geordnet, dass die Packages (.java & .class) direkt im Project-Pfad lagen. Das Gleiche galt für meine Resources... |
|
|
Alle Zeitangaben in WEZ. Es ist jetzt 03:44 Uhr. | Privacy Policy
|