ArcEngine/Java issue
ArcEngine 10.1 needs Java to be installed and ArcEgine finds Java by registry keys (not by environmental variables like JAVA_HOME and PATH).
When ArcEngine does not find Java properly there are two different error messages in the console log after Synchronized with "xxx" Map
- Java Executable
Loading jawt.dll failed. This is normal if java.version < 1.3. If java.version is > 1.4 and if this failure has occurred on Windows,
please ensure that this program is started with a Java executable from a JDK/JRE install location on this computer.
at com.esri.arcgis.interop.NativeObjRef.getJdk13WindowsHandleNative(Native Method) - Java HotSpot
How to fix Java issues for ArcEngine
- Check in the Programs and Features in the Control Panel if the Java installed is the Java that is included in the IMSMANG installation package.
- If not, ask the user if you may uninstall the other version.
- If our Java already was installed check that the right version is found by Java;
- find the Java version by typing Java -version in the Command window and click Enter.
- Verify that the environment variable JAVA_HOME is set to C:\Program Files\Java\jre7 on 32-bits OS or C:\Program Files (x86)\Java\jre7 on 64-bits OS.
- If none of the above fixed the problem, add ;%JAVA_HOME%\bin to the end of the PATH environment variable.
- If it still does not work, copy the contents of the environment variable PATH to a document.
- Copy %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;%JAVA_HOME%\bin to the environment variable PATH.
- In this way you know that the PATH is correct and does not have any other issues.
- Test again.
- If it works, restore the PATH variable by copy back part by part back to it with ; between each part.
- Note: test to start the client between each change of the PATH.
Our Java
Example log file from English stand-alone server
System Property "user.language": en
System Property "user.language.format": not set
System Variable "AGSENGINEJAVA": C:\Program Files (x86)\ArcGIS\Engine10.1\
System Variable "Path": C:\windows\system32;C:\windows;C:\windows\System32\Wbem;C:\windows\System32\WindowsPowerShell\v1.0\; c:\Program Files (x86)\Java\jre7\bin
System Variable "Java_Home": c:\Program Files (x86)\Java\jre7
System Variable "LANG": not set
Client Configuration Variable "java.naming.provider.url": localhost
Client Configuration Variable "AlwaysSyncGeodata": true
Client Configuration Variable "isClientOnly": false
Connecting to GIS Service ...
Starting session with GIS Service at "/C:/IMSMAng//server/gis" ...
GIS Service starting ...
fileServerURI = file:/C:/IMSMAng/server/gis/
map.name = World
Building Map Configuration ...
Connected to GIS Service
Synchronizing with "World" Map cached in "C:\IMSMAng\client\gis\sandbox\World" ...
Synchronized with "World" Map