Feature #989

Updated by Matthieu Decorde over 5 years ago

Currently, TXM must be installed in an environment where Java is already installed.

This has several drawbacks:
* users must install a compatible Java themselves and it can be difficult to do (find it on the web, choose the right architecture 32/64-bit, the right version, some vendors like Apple sometime change their policy with respect to Java, sometimes there are temporary security risks for some versions or libraries, etc.), adding difficulties globally to run TXM on a machine
* this adds another component to the already big list of independant installations needed to run TXM on a machine (Java, TreeTagger software, TreeTagger models, TXM setup) resulting in a long and error prone installation process and not very practical for users (the ideal scenario for a software installation process is to launch just one installer software and that the installation process is the most automatic)
* if different Java versions can run TXM in a given environment we have the risk that TXM behavior can be different between them (typically at the borderline of the Java language specification - preemptive threads, etc. - or different versions of hosted Java libraries), and this can be very difficult to support and maintain from the point of view of TXM
* last but not least, Java suffers from its reputation of slowness and security risk in browser applets. Putting Java less in the front would help users to concentrate more on the right components for performance issues (like CQP search engine for example which is not written in Java) and not be needlessly alarmed about security risks (TXM execution context is not in an applet).

Embedding a JRE in TXM will greatly simplify TXM users and developers life.

* Find a JRE for all architectures (Linux 32bit, Linux 64bit, Windows 32bit, Windows 64bit and Mac OS X 64bit)
** Oracle jres can be downwloaded at: http://www.oracle.com/technetwork/java/javase/downloads
** it represents +40Mo for the setup and +160Mo for the installation files (65Mo for rt.jar and 60Mo for architecture dependent libs)
** See IceTea
*** Voir http://icedtea.classpath.org/wiki/Main_Page et https://github.com/alexkasko/openjdk-unofficial-builds#openjdk-unofficial-installers-for-windows-linux-and-mac-os-x
* Modify setup building Bash scripts
** no, we only need to add the jre files in org.txm.setups/trunk/archs directories
* Java version: 1.7.0_71

h3. Validation Test

# Open TXM about dialog
# Open
# select "" tab
# in the ordered list of properties you must find :
java.runtime.name=Java(TM) SE Runtime Environment
java.specification.name=Java Platform API Specification
java.specification.vendor=Oracle Corporation
java.vendor=Oracle Corporation
java.vm.info=mixed mode
java.vm.name=Java HotSpot(TM) 64-Bit Server VM
java.vm.specification.name=Java Virtual Machine Specification
java.vm.specification.vendor=Oracle Corporation
java.vm.vendor=Oracle Corporation

To ensure this is not the current system jvm, in a terminal call :
java -version

Ubuntu 14.04: *OK* (MD)