Nach Installation von MapForce steht ein MapForce API Client-Projekt für Java im folgenden Verzeichnis zur Verfügung: C:\Benutzer\<Benutzername>\Dokumente\Altova\MapForce2025\MapForceExamples\API.
Sie können das Java-Beispielprojekt mit Hilfe der Batch-Datei BuildAndRun.bat direkt über die Befehlszeile testen oder Sie können es in Eclipse kompilieren und ausführen. Anleitungen dafür finden Sie weiter unten.
Dateiliste
Der Ordner für die Java-Beispiele enthält alle zum Ausführen des Beispielprojekts erforderlichen Dateien. Diese Dateien sind unten aufgelistet:
AltovaAutomation.dll | Java-COM Bridge: DLL-Teil |
AltovaAutomation.jar | Java-COM Bridge: Java-Bibliotheksteil |
XMLSpyAPI.jar | Java-Klassen der MapForce API |
RunXMLSpy.java | Java-Beispielquellcode |
BuildAndRun.bat | Batch-Datei zum Kompilieren und Ausführen des Beispielcodes über die Befehlszeile. Es wird ein Ordner benötigt, in dem sich die Java Virtual Machine als Parameter befindet. |
.classpath | Hilfedatei Eclipse-Projekt |
.project | Eclipse-Projektdatei |
MapForceAPI_JavaDoc.zip | Javadoc Datei, die die Hilfedokumentation für die Java API enthält |
Funktionen in diesem Beispiel
In diesem Beispielprojekt wird MapForce gestartet und einige Operationen wie das Öffnen und Schließen von Dokumenten werden ausgeführt. MapForce bleibt danach geöffnet. Sie müssen die Applikation manuell schließen.
Ausführen des Beispiels über die Befehlszeile
Um das Beispiel von der Befehlszeile aus auszuführen, öffnen Sie ein Eingabeaufforderungsfester, gehen Sie zum Ordner Java des Ordners API Examples (Pfad siehe oben) und geben Sie folgende Zeile ein:
buildAndRun.bat "<Path-to-the-Java-bin-folder>"
Der Java Binary-Ordner muss von einer JDK 1.5 oder höheren Version auf Ihrem Rechner sein.
Drücken Sie die Eingabetaste. Der Java-Quellcode in RunMapForce.java wird kompiliert und anschließend ausgeführt.
Laden des Beispiels in Eclipse
Öffnen Sie Eclipse und wählen Sie den Befehl Import | Existing Projects into Workspace um die Eclipse-Projektdatei (.project) im Ordner Java des Ordners API Examples (Pfad siehe oben) zu Eclipse hinzuzufügen. Daraufhin wird das Projekt RunMapForce in Ihrem Package Explorer oder Navigator angezeigt.
Wählen Sie das Projekt aus und klicken Sie anschließend auf Run as | Java Application um das Beispiel auszuführen.
Anmerkung: | Sie können einen Klassennamen oder eine Methode der Java API auswählen und F1 drücken, um Hilfe zu dieser Klasse oder Methode zu erhalten. |
Java-Quellcode
Im Folgenden finden Sie den mit Kommentaren versehenen Java-Quellcode aus der Beispieldatei RunMapForce.java.
// access general JAVA-COM bridge classes import java.util.Iterator; import com.altova.automation.libs.*; // access XMLSpy Java-COM bridge import com.altova.automation.MapForce.*; import com.altova.automation.MapForce.Enums.ENUMProgrammingLanguage; /** * A simple example that starts the COM server and performs a few operations on it. * Feel free to extend. */ public class RunMapForce { public static void main(String[] args) { // an instance of the application. Application mapforce = null; // instead of COM error handling use Java exception mechanism. try { // Start MapForce as COM server. mapforce = new Application(); // COM servers start up invisible so we make it visible mapforce.setVisible(true); // The following lines attach to the application events using a default implementation // for the events and override one of its methods. // If you want to override all document events it is better to derive your listener class // from DocumentEvents and implement all methods of this interface. mapforce.addListener(new ApplicationEventsDefaultHandler() { @Override public void onDocumentOpened(Document i_ipDoc) throws AutomationException { String name = i_ipDoc.getName(); if (name.length() > 0) System.out.println("Document " + name + " was opened."); else System.out.println("A new mapping was created."); } }); // Locate samples installed with the product. int majorVersionYear = mapforce.getMajorVersion() + 1998; String strExamplesFolder = System.getenv("USERPROFILE") + "\\Documents\\Altova\\MapForce" + Integer.toString(majorVersionYear) + "\\MapForceExamples\\"; // create a new MapForce mapping and generate c++ code Document newDoc = mapforce.newMapping(); ErrorMarkers err1 = newDoc.generateCodeEx(ENUMProgrammingLanguage.eCpp); display(err1); // open CompletePO.mfd and generate c++ code Document doc = mapforce.openDocument(strExamplesFolder + "CompletePO.mfd"); ErrorMarkers err2 = doc.generateCodeEx(ENUMProgrammingLanguage.eCpp); display(err2); doc.close(); doc = null; System.out.println("Watch MapForce!"); } catch (AutomationException e) { // e.printStackTrace(); } finally { // Make sure that MapForce can shut down properly. if (mapforce != null) mapforce.dispose(); // Since the COM server was made visible and still is visible, it will keep running // and needs to be closed manually. System.out.println("Now close MapForce!"); } } public static void display(ErrorMarkers err) throws AutomationException { Iterator<ErrorMarker> itr = err.iterator(); if (err.getCount() == 0) System.out.print("Code generation completed successfully.\n"); while (itr.hasNext()) { String sError = ""; Object element = itr.next(); if (element instanceof ErrorMarker) sError = ((ErrorMarker)element).getText(); System.out.print("Error text: " + sError + "\n"); } } } |