Print this page
Thursday, 04 June 2015 15:36

Talend Studio: Use (Java) JRE or JDK?

Written by
Rate this item
(0 votes)

Talend Studio (essentially a customized Eclipse IDE) requires that Java be installed on the client in order for the Studio to function - run jobs etc... Most often when installing Talend, the decision of installing Java is a no-brainer - basically click-through on java.com and you're done. But that doesn't always work, depending what you're doing in your Talend job.

Although this is pretty elementary stuff - allow me to cut to the chase (and skip reinventing the wheel) by presenting an excellent summary of the description of Java from www.paololatella.it:

Java technology is both a programming language and a platform. The Java programming language is a high-level object-oriented language that has a particular syntax and style. A Java platform is a particular environment in which Java programming language applications run. There are four platforms of the Java programming language:

  • Java Platform, Standard Edition (Java SE)
  • Java Platform, Enterprise Edition (Java EE)
  • Java Platform, Micro Edition (Java ME)
  • Java FX

All Java platforms consist of a Java Virtual Machine (VM) and an application programming interface (API). The Java Virtual Machine is a program, for a particular hardware and software platform, that runs Java technology applications. An API is a collection of software components that you can use to create other software components or applications. Each Java platform provides a virtual machine and an API, and this allows applications written for that platform to run on any compatible system with all the advantages of the Java programming language: platform-independence, power, stability, ease-of-development, and security.

When most people think of the Java programming language, they think of the Java SE API. Java SE's API provides the core functionality of the Java programming language. It defines everything from the basic types and objects of the Java programming language to high-level classes that are used for networking, security, database access, graphical user interface (GUI) development, and XML parsing. In addition to the core API, the Java SE platform consists of a virtual machine, development tools, deployment technologies, and other class libraries and toolkits commonly used in Java technology applications.

JDK vs JRE

The JRE is 'usually' what you get when you download Java software (without making particular selections). The JRE consists of the Java Virtual Machine (JVM), Java platform core classes, and supporting Java platform libraries. The JVM, an implementation of the platform on a particular hardware and software (Operating System - Win, Linux etc...) is created at run time and serves as the 'container' in which a Talend job (or any Java application) runs or is executed within. The JDK is an extension of the JRE and contain the JVM and the kit for developing new applications, in particular the compiler (javac) and other pieces.

The following is a visual description of the pieces that make up the language & platform:



With all that, what do you need to run Talend Studio?

If you're developing jobs that do not involve web service calls, the JRE works fine:



If you happen to run a job with a Studio that's configured to use the JRE and is invoking web service calls, you will get an error like

Exception in component tWebService_1
java.lang.NullPointerException
    at org.apache.cxf.common.util.Compiler.useJava6Compiler(Compiler.java:190)
    at org.apache.cxf.common.util.Compiler.compileFiles(Compiler.java:144)
    at org.apache.cxf.common.util.Compiler.compileFiles(Compiler.java:139)
    at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.compileJavaSrc(DynamicClientFactory.java:610)
    at org.apache.cxf.endpoint.dynamic.DynamicClientFactory.createClient(DynamicClientFactory.java:369)
    at org.talend.webservice.helper.ServiceInvokerHelper.createClient(ServiceInvokerHelper.java:144)
    at org.talend.webservice.helper.ServiceInvokerHelper.getClient(ServiceInvokerHelper.java:135)
    at org.talend.webservice.helper.ServiceInvokerHelper.invoke(ServiceInvokerHelper.java:236)


Switching to the JDK resolves that - because it includes additional classes that are necessary to invoke and create web service calls.

Read 11397 times Last modified on Thursday, 04 June 2015 16:24
Will Munji

Will Munji is a seasoned data integration, data warehousing and business intelligence (BI) architect & developer who has been working in the DW/BI space for a while. He got his start in BI working on Brio SQR (later Hyperion SQR) and the Crystal Decisions stack (Reports, Analysis & Enterprise) and SAP BusinessObjects / Microsoft BI stacks. He currently focuses on Talend Data Management Suite, Hadoop, SAP BusinessObjects BI stack as well as Jaspersoft and Tableau. He has consulted for many organizations across a variety of industries including healthcare, manufacturing, retail, insurance and banking. At Kindle Consulting, Will delivers DW/BI/Data Integration solutions that range from front-end BI development (dashboards, reports, cube development, T-SQL/ PL/SQL ...) to data services (ETL/ DI development), data warehouse architecture and development, data integration to BI Architecture design and deployment.

Latest from Will Munji

Related items