Dateien automatisch mit Jadice öffnen (File Type Associations)

Ziel

Bestimmte Dateitypen (zum Beispiel alle TIFF-Dateien) sollen aus Windows bei Doppelklick standardmäßig mit jadice geöffnet werden.

Voraussetzungen

Eine Integration der jadice document platform, die das Öffnen von Dateien, die auf einem Windows-Laufwerk vorhanden sind, unterstützt. Viele Integrationen sind ausschließlich für die Arbeit mit Archivsystemen konzipiert. Die in jeder jadice-Auslieferung integrierte Demo-Applikation erlaubt hingegen das Öffnen lokaler Dateien. Im Rahmen dieses Artikels wird sie ohne weitere Veränderungen direkt eingesetzt. Für den produktiven Einsatz empfiehlt sich jedoch eine Anpassung auf die eigenen Bedürfnisse. Zudem bitten wir zu beachten, dass für die Demo-Anwendung keine API-Stabilität garantiert wird und ohne Vorankündigung Funktionen entfallen oder hinzukommen können.

Umsetzung

  • Bereitstellen einer jadice Integration, die das direkte Öffnen von Dateien unterstützt.
    • Für dieses Beispiel wird die jadice Standard-Demo verwendet. Sie unterstützt das Öffnen von Dateien, wenn diese über den Parameter
      -open=<Dateiname>
      
      übergeben werden.
    • Mit Hilfe einer Batch-Datei kann die Anwendung gestartet werden. (Beispiel siehe unten)
    • Die Batch-Datei, die auf dem Klassenpfad benötigten jar-Dateien und gegebenenfalls weitere Ressourcen, wie auch die Lizenzdatei, müssen in einem Verzeichnis abgelegt werden. Dafür kommt beispielsweise C:\Programme in Frage.
  • Parameter zum Öffnen von Dateien
    • Die zu öffnende Datei wird von Windows als erster Parameter an die Applikation übergeben. Diese muss also mit dem Parameter umgehen können.
    • In einem Batch Skript steht der Parameter als %1 zur Verfügung. An die Java-Applikation muss er mit dem oben genannten Parameter -open weitergegeben werden.
  • Windows Dateiverknüpfung anlegen
    • Eine Datei auswählen, deren Dateityp mit jadice Assoziiert werden soll.
    • Rechtsklick => Eigenschaften => Registerkarte Allgemein
    • Bei der Option »Öffnen mit:« existiert ein Button »Ändern…«. Nach Klick darauf kann im sich öffnenden Fenster über »Durchsuchen…« das erstellte Batch Skript ausgewählt werden.
  • Dateien des entsprechenden Typs werden künftig an das Batch Skript zur Verarbeitung übergeben.

Beispiel Batch-Datei

Die Batch-Datei geht davon aus, dass alle auf dem Klassenpfad benötigten Ressourcen in demselben Verzeichnis oder einem Unterverzeichnis liegen. Aus diesem Grund wird zunächst ins Verzeichnis der Batch-Datei gewechselt. Von dort aus erfolgt der Start der Java VM. Über @start /B wird dafür gesorgt, dass kein CMD-Fenster erscheint. javaw -Xmx512M startet die Java VM mit 512 MB Heapsize. Der Klassenpfad wird gesetzt durch -cp lib/appbase/jadice-appbase-5.1.0.5.jar;demo/client/jadice-demo-client-5.1.0.5.jar;lib/all/jadice-documentplatform-all-5.1.0.5.jar;. . Die zu startende Klasse lautet JadiceDemoApplication und bekommt den Parameter -open=%1 übergeben.

@echo off

REM %0 holds the name of the executing batch file. Therefore to get the location 
REM of an executing batch file from within that batch file you can use the 
REM variable %~dp0. Where d is the drive, p is the path and 0 is of course the 
REM name of the executing batch file. 
REM [...] using %~dp0 you can get the correct directory path, even for UNC paths
REM Source: http://weblogs.asp.net/whaggard/archive/2005/01/28/get-directory-path-of-an-executing-batch-file.aspx
set baseDir=%~dp0
set drive=%~d0

REM change to correct drive (e.g. C:)
%drive%

REM change to correct directory
cd %baseDir%

REM launch application
@start /B javaw -Xmx512M -cp lib/appbase/jadice-appbase-5.1.0.5.jar;demo/client/jadice-demo-client-5.1.0.5.jar;lib/all/jadice-documentplatform-all-5.1.0.5.jar;. JadiceDemoApplication -open=%1

Weitere Informationen

Weiterführende Informationen zum Thema File Associations finden sich auch bei Microsoft, zum Beispiel unter http://msdn.microsoft.com/en-us/library/windows/desktop/cc144104%28v=vs.85%29.aspx