标签:
When compiling or executing a Java application that uses the ArcObjects Java API, the following error is returned:
java.lang.UnsatisfiedLinkError: no ntvinv in java.library.path
The PATH variable does not include a directory which contains the native libraries required for ArcObjects Java classes to function.
Add the directory that contains the native libraries needed by ArcObjects Java to the PATH variable.
Note:
$ARCENGINEHOME may need to be replaced with the location of the ArcGIS SDK installation.
On Windows, you must modify your PATH
system variable to include either:
%AGSDESKTOPJAVA%\java\jre\bin
%AGSDESKTOPJAVA%\bin
1 package com.ys.test; 2 3 //Example 1: Hello ArcObjects! 4 import java.io.IOException; 5 import com.esri.arcgis.system.AoInitialize; 6 import com.esri.arcgis.system.EngineInitializer; 7 import com.esri.arcgis.system.esriLicenseProductCode; 8 import com.esri.arcgis.system.esriLicenseStatus; 9 import com.esri.arcgis.carto.MapServer; 10 public class EngineHelloWorld{ 11 public static void main(String[] args){ 12 try{ 13 //Step 1: Initialize the Java Componet Object Model (COM) Interop. 14 EngineInitializer.initializeEngine(); 15 16 //Step 2: Initialize an ArcGIS license. 17 AoInitialize aoInit = new AoInitialize(); 18 initializeArcGISLicenses(aoInit); 19 20 //Step 3: Invoke ArcObjects. 21 MapServer mapServer = new MapServer(); 22 23 String DevKitInstallDir = System.getenv("AGSDESKTOPJAVA"); 24 25 mapServer.connect(DevKitInstallDir + 26 "/MapTemplates/Traditional Layouts/World/Europe.mxd"); 27 28 String name = mapServer.getDefaultMapName(); 29 30 System.out.println("Hello, ArcObjects!: " + name); 31 32 //Step 4: Release the license. 33 aoInit.shutdown(); 34 } 35 catch (IOException ex){ 36 System.out.println(ex.getMessage()); 37 System.out.println("App failed."); 38 } 39 } //End of method main. 40 41 //License initialization 42 static void initializeArcGISLicenses(AoInitialize aoInit){ 43 try{ 44 if (aoInit.isProductCodeAvailable 45 (esriLicenseProductCode.esriLicenseProductCodeEngine) == 46 esriLicenseStatus.esriLicenseAvailable){ 47 aoInit.initialize 48 (esriLicenseProductCode.esriLicenseProductCodeEngine); 49 } 50 else if (aoInit.isProductCodeAvailable 51 (esriLicenseProductCode.esriLicenseProductCodeBasic) == 52 esriLicenseStatus.esriLicenseAvailable){ 53 aoInit.initialize(esriLicenseProductCode.esriLicenseProductCodeBasic) 54 ; 55 } 56 else{ 57 System.err.println( 58 "Engine Runtime or Desktop Basic license not initialized."); 59 System.err.println("Exiting application."); 60 System.exit( - 1); 61 } 62 } 63 catch (Exception e){ 64 e.printStackTrace(); 65 } 66 } //End of method initializeArcGISLicenses 67 } //End of class:EngineHelloWorld.
http://desktop.arcgis.com/en/arcobjects/latest/java/
http://support.esri.com/technical-article/000007942
http://edndoc.esri.com/arcobjects/9.1/default.asp?URL=/arcobjects/9.1/ArcGISDevHelp/DevelopmentEnvs/Java/JavaArcGISProgramming.htm
Error: java.lang.UnsatisfiedLinkError: no ntvinv in java.library.path
标签:
原文地址:http://www.cnblogs.com/ys-wuhan/p/5910716.html