[GIS] Difference between ArcObjects SDK for Java and ArcGIS Runtime SDK for Java and ArcGIS Engine

arcgis-enginearcgis-platformarcgis-runtimearcobjectsjava

What is the difference between ArcObjects SDK for Java and ArcGIS Runtime SDK for Java and ArcGIS Engine.

I have ArcGIS Desktop 10.1 on my laptop. What do I need to create ArcGIS desktop applications (arcmap and standalone) in Java? Do I need to purchase a license for creating applications? License is $1500, I can't afford it.

I am confused with the terminology.

Best Answer

The terminology confuses me too but as far as I have understood:

  • ArcObjects is a set components with which you can write a program to control any of the ESRI products (ArcGIS Desktop, ArcGIS Server or ArcEngine). See "What is ArcObjects?".

  • ArcEngine is the kernel of ArcGIS without the user interface. You can't do anything with ArcEngine alone, you use it through an application which was developed for ArcEngine and which provide the user interface.

  • ArcEngine SDK is probably a sub part of ArcObjects limited to the ArcEngine functionality. If you write an application using only the ArcEngine SDK then you have access to the ArcGIS kernel but not to user interface elements (except maybe simple ones, like popup windows for properties). Using ArcObjects you have access to more user interface elements but you then need the more expensive Desktop license to run it. See also the forum discussion "ArcObjects Vs. ArcEngine".

  • ArcGIS Runtime SDK is a new API but it is not as powerful as ArcObjects. Depending on what kind of programs you want to write, it might be enough or not. An advantage is that it seems to allow native 64 Bit programs. As far as I know there isn't any 64 Bit version of ArcObjects until now, which might be problematic if your program needs more than 2 or 4 GB of memory. See "ArcObjects or the ArcGIS Runtime SDKs for Java and WPF—which is right for you?".

Related Question