Ein Eclipse-Workspace ist das Verzeichnis, in dem alle Metadaten-Einstellungen gespeichert sind (in Form von Eclipse-spezifische Dateien). In einer RCP-Anwendung, ist es an der Wurzel des Antrags in dem Arbeitsbereich-Verzeichnis.

Die RCP-Problem ist, dass die meisten der Zeit, es war nicht wirklich brauchen dieses Verzeichnis (vor einem Client, "plugins"-Funktion und "Konfiguration", ist es gerechtfertigt ... aber hier? " ).

Die Idee ist die Schaffung dieses Verzeichnis Bypass zu definieren "von Hand" während der Laufzeit.

Die Magie Parameter

Sie fügen Sie einfach einen Parameter in der Befehlszeile von Eclipse, um anzuzeigen, dass wir uns wird es die Position des Arbeitsbereichs festzulegen.
Natürlich muss es bei der Vorstellung des Antrags positioniert werden, wenn Eclipse Release Angabe wird, dass keine Ausnahme wurde Arbeitsbereich positioniert.

Das berühmte "Program Arguments" genannt-data @ nodefault.

So dass die RCP-Anwendung berücksichtigt in diesem Wandel allein, geben Sie dies einfach in Ihrer. Größe (Tab "Launching"):

.product arguments

Es kann auch sinnvoll sein, die Position innerhalb der Parameter des Starts von Run:

args_tab

Ändern Sie das Verzeichnis

Nun Eclipse entladen ist, um den Arbeitsbereich zu initialisieren, wird es einfach zu sagen es ist, in welchem Verzeichnis Mails.

Um sicher zu sein, dass diese Einstellung funktioniert unter Linux & Merdow $, werden wir die temporären Verzeichnis zu erstellen, letztere wieder via Java-Eigenschaften: System.getProperty("java.io.tmpdir")

Wie ich bereits sagte, müssen Sie dies sehr bald tun ... wir tun das in unserer Klasse
Application (was implementiert org.eclipse.equinox.app.IApplication):

  1. / **
  2. * (@ InheritDoc)
  3. *
  4. start ( final IApplicationContext pContext ) throws Exception { public Object starten (final IApplicationContext pContext) throws Exception (
  5. / / Set Speicherort für die temporären Ordner
  6. . set ( new URL ( "file" , Platform. GetInstanceLocation (). Set (neue URL ("file",
  7. . getProperty ( "java.io.tmpdir" ) ) , null, System. getProperty ("java.io.tmpdir")),
  8. ; false);
  9. [...]
  10. )

Und das ist alles ...

Nun, jetzt unsere RCP-Anwendung ist nicht mehr befallen dieses Verzeichnis ...

In Verbindung stehende Artikel