Una vez haya instalado MapForce podrá encontrar un ejemplo de proyecto cliente de la API de MapForce en Java en el directorio C:/Users/<username>/Documents/Altova/MapForce2023/MapForceExamples/API.
Puede probar el ejemplo en Java directamente desde la línea de comandos usando el archivo BuildAndRun.bat o puede compilar y ejecutar el proyecto de ejemplo desde Eclipse. Ambas opciones vienen explicadas a continuación.
Lista de archivos
La carpeta de ejemplos en Java contiene todos los archivos necesarios para ejecutar el proyecto de ejemplo. Estos archivos son los siguientes:
AltovaAutomation.dll | puente Java-COM bridge: parte DLL |
AltovaAutomation.jar | puente Java-COM: parte de biblioteca Java |
MapForceAPI.jar | clases Java de la API de MapForce |
RunMapForce.java | código fuente del ejemplo en Java |
BuildAndRun.bat | fichero batch para compilar y ejecutar el código del ejemplo desde la línea de comandos. Se necesita una carpeta en la que la Java Virtual Machine esté como parámetro. |
.classpath | archivo de ayuda del proyecto de Eclipse |
.project | archivo del proyecto de Eclipse |
MapForceAPI_JavaDoc.zip | archivo Javadoc que contiene la documentación de ayuda para la Java API |
¿Qué hace el ejemplo?
El ejemplo inicia MapForce y realiza algunas operaciones como abrir y cerrar documentos. Al finalizar, MapForce sigue abierto y debe cerrarlo de forma manual.
Ejecutar el ejemplo desde la línea de comandos
Para ejecutar el ejemplo desde la línea de comandos, abra la ventana del símbolo del sistema, vaya a la carpeta de Java de los ejemplos de la API (encontrará más arriba la ubicación) y teclee:
buildAndRun.bat "<Path-to-the-Java-bin-folder>"
La carpeta binaria de Java debe ser la del Java Development Kit (JDK) 7 o superior.
Pulse la tecla de retorno. La fuente en Java en RunMapForce.java se compilará y después se ejecutará.
Cargar el ejemplo en Eclipse
Abra Eclipse y use el comando Archivo | Importar... | General | Proyectos existentes en el espacio de trabajo para añadir el archivo del proyecto de Eclipse (.project) ubicado en la carpeta de Java de la carpeta de ejemplos de la API (encontrará más arriba su ubicación). El proyecto RunMapForce aparecerá en su explorador de paquetes o explorador.
Seleccione el proyecto y después el comando Ejecutar como | Aplicación en Java para ejecutar el ejemplo.
Nota: | puede seleccionar un nombre o un método de clase de la Java API y pulsar F1 para obtener ayuda para esa clase o ese método. |
Fragmento de código fuente en Java
A continuación se muestra el código fuente en Java del archivo de ejemplo RunMapForce.java con comentarios.
// 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 XMLSpy 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.\"); while (itr.hasNext()) { String sError = ""; Object element = itr.next(); if (element instanceof ErrorMarker) sError = ((ErrorMarker)element).getText(); System.out.print("Error text: " + sError + "\"); } } } |