Getting started  

Frequently asked questions


General questions

 

  1. What is ArcGIS Engine Java?
  2. Where can I get more developer content and samples for the Java API?
  3. How can I deploy the ArcGIS Engine Java applications?
  4. Can I embed GIS functions using the Engine API in my existing J2SE application?
  5. What are the supported platforms for Engine Applications?
  6. Can I use any IDE of my choice for development work?
  7. I have an ArcGIS Desktop license; do I need an Engine license to run my Java Engine applications?
  8. If I have ArcGIS Desktop installed on my computer, do I still need to install the Engine Runtime?
  9. What is the difference between MapObjects—Java Edition and ArcGIS Engine Java?
  10. How do I determine what licenses are available on a computer?

 

Technical questions

 

  1. Are there any postinstall steps for the Engine Runtime?
  2. The JMenu, ToolTips and other drop-down Swing components do not show up properly; how do I fix it?
  3. Are the ArcGIS visual JavaBeans Swing components?
  4. None of my applications work on UNIX, what should I do?
  5. How does the garbage collection work in ArcGIS Engine Java?
  6. What do you mean by initializing the Engine?
  7. Can I use SWT widgets with the Engine Application?
  8. Which version of JRE should I work with?
  9. Is ArcGIS Engine Java thread safe?
  10. What are the ProxyClasses like XXXProxy class for?
  11. What is the difference between MapControl and MapBean?
  12. Can I create custom commands and tools in Engine Java API?
  13. What is the difference in query syntax for different data sources?
  14. Can I redistribute arcobjects.jar with my application?

 

General questions

 

What is ArcGIS Engine Java?

 

ArcGIS Engine is a developer product for creating custom GIS desktop applications. ArcGIS Engine includes the core set of components from which ArcGIS Desktop products are built. With ArcGIS Engine you can build stand-alone applications or extend existing applications to provide focused spatial solutions to both GIS and non-GIS users.  The Engine provides multiple APIs, including a rich Java API for creating applications. The ArcGIS Engine SDK for java also comes with a collection of tools, samples, and documentation to help with the development.

Back to top

 

 

Where can I get more developer content and samples for the Java API?

 

Developers can find the latest samples and documentation for the product from http://edn.esri.com/java. A large number of samples and documents are also installed with the Java SDK.

Back to top

 

 

How can I deploy ArcGIS Engine Java applications?

 

ArcGIS Engine applications can be deployed in standard Java ways such as Java WebStart, InstallAnywhere, etc. However, end users must have manually installed an Engine Runtime before the applications can run. The Runtime can be purchased directly from ESRI or local distributors or bundled with your application when adhering to licensing guidelines.  For developers, ESRI provides the Runtime installer and detailed documentation on how it can be installed on various platforms. Developers can silently install the Runtime with their own install, but it cannot be installed using WebStart or simply unzipped on the target machine. Refer to the Licensing and deployments section for more information.

 

Back to top

 

Can I embed GIS functions using the Engine API in my existing J2SE application?

 

Yes, you can embed GIS functionalities in an existing J2SE application using the ArcGIS Engine API. ArcGIS Engine provides AWT Controls for visualizing the maps in 2D and 3D, which can be added to a Java container and thus linked to any existing application.  The API is dependent on native libraries as well as other Runtime components that are provided by ArcGIS Engine Runtime installation. Back to top

 

What are the supported platforms for Engine Applications?

 

ArcGIS Engine is supported on the following platforms and requires a Java Runtime (JRE) and an ArcGIS Engine Runtime*:

Windows: 2000, Windows XP

Linux :  Red Hat Linux AS/ES 4.0, SUSE Enterprise 9.0

Solaris: OS 9 and OS 10

*An ArcGIS Desktop installation can also be used in place of the Engine Runtime.

Back to top

 

Can I use any IDE of my choice for development work?

 

Yes, you can use the IDE of your choice for developing with ArcGIS Engine. All the visual Beans and other Java components adhere to standard guidelines for use in IDEs. However, ESRI provides a richer experience for using the Eclipse IDE and encourages developers to look into it. ESRI provides custom plug-ins to integrate documentation, samples, and a number of templates along with other features to improve the development experience.

Back to top

 

I have an ArcGIS Desktop license; do I need an Engine license to run my Java Engine applications?

 

If you have an ArcGIS Desktop license you do not need an Engine license to run your application but the license mechanism of your application should support that.  Refer to Licensing and deployments section for more information.

Back to top

 

 

If I have ArcGIS Desktop installed on my computer do I still need to install the Engine Runtime?

 

From the ArcGIS 9.2 release onwards, you do not need to install an ArcGIS Engine Runtime for Engine applications. All the binaries and JAR files necessary for an ArcGIS Engine Java application are part of the ArcGIS Desktop install from the 9.2 release. If you are using an earlier 9 system, you need to install the ArcGIS Engine Runtime.

Back to top

 

What is the difference between MapObjects—Java Edition and ArcGIS Engine Java?

 

MapObjectsJava Edition is a collection of Java components to develop GIS applications but is much smaller in scope than the Engine API. MapObjectsJava Edition is intended for lightweight GIS applications with limited functionality. The ArcGIS Engine Java provides a much more comprehensive collection of functionality, including support for rasters, 3D visualization, the geodatabase, and usage of map documents created in ArcGIS Desktop.

Back to top

 

 

How do I determine what licenses are available on a computer?

 

ArcGIS installs a utility called showAuthorizationSummary. This can be used to identify what licenses and extensions are available on a system. You can also programmatically determine what product licenses and extensions are available.

Back to top

 

 

Technical questions

 

Are there any postinstall steps for the Engine Runtime?

 

The postinstall steps vary by system and configuration. Refer to the postinstallation for more information.

Back to top

 

The JMenu, ToolTips, and other drop-down Swing components do not show up properly; how do I fix it?

 

All the visual Beans are heavyweight components; therefore when creating Swing based applications, you must follow Sun's guidelines for mixing AWT and Swing components. For this particular issue, you must set the lightWeightPopupEnabledOption to false. More details can be found at http://java.sun.com/products/jfc/tsc/articles/mixing/.

Back to top

 

Are the ArcGIS visual JavaBeans Swing components?

No, the ArcGIS visual JavaBeans are not Swing components. They are wrapped as JComponents but are actually heavyweight AWT components. Refer to the ArcObjects visual Beans and Swing section of the help system for more information on mixing the AWT and Swing components.

 

Back to top

 

None of my applications work on UNIX, what should I do?

UNIX requires postinstall steps for the Runtime to be properly configured. There are init_engine scripts for Bash and C shell for this purpose. You must source these scripts before Engine applications can work. Refer to the Postinstallation document.

 

Back to top

 

How does the garbage collection work in ArcGIS Engine Java?

Garbage collection in the Engine works similarly to any other Java application. When an object goes out of reference it gets garbage collected and the resources used by the underlying COM objects are released as well. You can also force an object to be garbage collected by using the Cleaner class in the com.esri.arcgis.system package and call the release method to specifically release resources for an ArcObjects component.

 

Back to top

 

What do you mean by initializing the Engine?

Initializing the Engine is one of the key steps when writing an Engine application to allow the Runtime to work properly. There are two kinds of initialization that must be the first call in the main method of your application:

EngineInitializer.initializeEngine()For non UI applications.

EngineInitializer.initializeVisualBeans()For UI applications.

Back to top

 

Can I use SWT widgets with the Engine application?

Yes, you can use the AWT_SWT bridge and use SWT for Engine applications.

Back to top

 

Which version of JRE should I work with?

For the ArcGIS 9.2 release, you can use JRE 1.5_06 and higher.

Back to top

 

Is ArcGIS Engine Java thread safe?

ArcGIS Engine runs using the underlying COM objects, which are not thread safe; thus, ArcGIS Engine Java is not thread safe.

Back to top

 

What are the ProxyClasses like XXXProxy class for?

Proxy classes are only for the purpose of casting. In prior releases of Engine, you could not simply use the standard Java casting model and had to use these proxy classes for that. They are still available in 9.2 for the purpose of backwards compatibility, but you should not need to use the proxy classes when building new applications.

Back to top

 

What is the difference between MapControl and MapBean?

MapControl and MapBean essentially contain the same methods, but the MapBean is a proper Bean, and MapControl is not. Therefore, when visually creating applications in an IDE, the MapBean internally uses the MapControl to draw maps but gives access to a number of property pages and other properties as well. All the XXXBean classes have XXXControl as a member of the class and can get the corresponding control from the Bean using the getXXXControl() method on the Bean.

Back to top

 

 

Can I create custom commands and tools in Engine Java API?

Yes, refer to the Creating custom commands and tools topic for more details.

However, Java cannot be used to extend ArcGIS Desktop or the ArcObjects framework at version 9.2. To extend ArcObjects, developers can use a COM compliant language to create custom ArcObjects extensions and use the "proxygen" tool to create the Java wrappers for these custom COM components.

Back to top

 

What is the difference in query syntax for the different data sources?

The difference is the SQL query expression that is used to select records. The syntax for the expression is different for different data formats. Some of the most commonly encountered differences are the following:

    For ArcSDE, the field names are not wrapped; for example, MY_FIELD.

    For file or personal geodatabases, the field names are wrapped in square brackets; for example, [MY_FIELD].

    For all others, the field names are wrapped in double quotes; for example, "MY_FIELD".

    Access uses '*' and '?' as string wildcards rather than '%' and '_' in all other formats.

Back to top

 

 

Can I redistribute arcobjects.jar with my application?

No, this is not a recommended procedure. Refer to the Deployment guide for more information on this.

Back to top