Error: java.lang.UnsatisfiedLinkError: no ntvinv in java.library.path
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Error: java.lang.UnsatisfiedLinkError: no ntvinv in java.library.path相关的知识,希望对你有一定的参考价值。
Error Message
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
Cause
The PATH variable does not include a directory which contains the native libraries required for ArcObjects Java classes to function.
Solution or Workaround
Add the directory that contains the native libraries needed by ArcObjects Java to the PATH variable.
- On both Windows and Unix platforms, add either of the following directories to the PATH variable:
A. $AGSDESKTOPJAVA\java\jre\bin
B. $AGSDESKTOPJAVA\bin
Note:
$ARCENGINEHOME may need to be replaced with the location of the ArcGIS SDK installation. - Unix also provides the option of running the ArcEngine helper scripts in $ARCENGINEHOME: init_engine.csh or init_engine.sh.
- See ArcGIS SDK for Java Environment Settings in the Related Information section below for additional information.
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的主要内容,如果未能解决你的问题,请参考以下文章
新浪微博Error_code: 400; Error: 40022:Error: source paramter(appkey) is missing的解决方法
Error 500--Internal Server Error如何解决
在 MySQL 中出现 ERROR 1701、ERROR 1452 和 ERROR 1305 错误 - 需要一些专业知识