Spotfire® Enterprise Runtime for R

To Call Embedded Spotfire Enterprise Runtime for R from an IntelliJ Project

Using the IntelliJ IDE to debug your Java application could require a workaround.

In one case, a user had problems using embedded TERR when debugging a Java application within the IntelliJ IDE, even when the application worked when invoked from Java directly. Specifically, evaluating the following:

.JavaMethod("java/lang/Math", "pow", "(DD)D", 2, 3)

gave the correct answer, 8, whereas evaluating the following:

.JavaMethod("com/tibco/terr/TerrJava", "testPow", "(DD)D", 2, 3)

resulted in the following Java error:

java.lang.ClassNotFoundException: com.tibco.terr.TerrJava

Eventually, we discovered that IntelliJ uses a separate Java class loader when a project has a large classpath. This prevents .JavaMethod from finding the class com/tibco/terr/TerrJava. There is no clear way to work around this problem in TERR, because TERR cannot access IntelliJ's special class loader.

This problem is described in the article found at http://youtrack.jetbrains.com/issue/IDEA-48090?query=8, which also claims that this IntelliJ bug has been fixed.

In any case, this page also describes a workaround when using IntelliJ: remove the following line from the file workspace.xml:

<property name="dynamic.classpath" value="true"/>