Julien Massiera created TIKA-2753: ------------------------------------- Summary: ChildProcess does not use the JAVA_HOME Key: TIKA-2753 URL: https://issues.apache.org/jira/browse/TIKA-2753 Project: Tika Issue Type: Bug Components: server Affects Versions: 1.19.1 Reporter: Julien Massiera
If the user starting the Tika Server does not have the path to java configured in its PATH var, the following error appears in the logs : java.io.IOException: Cannot run program "java": error=2, No such file or directory at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048) at org.apache.tika.server.TikaServerWatchDog$ChildProcess.startProcess(TikaServerWatchDog.java:224) at org.apache.tika.server.TikaServerWatchDog$ChildProcess.<init>(TikaServerWatchDog.java:149) at org.apache.tika.server.TikaServerWatchDog$ChildProcess.<init>(TikaServerWatchDog.java:139) at org.apache.tika.server.TikaServerWatchDog.execute(TikaServerWatchDog.java:87) at org.apache.tika.server.TikaServerCli.execute(TikaServerCli.java:136) at org.apache.tika.server.TikaServerCli.main(TikaServerCli.java:117) Caused by: java.io.IOException: error=2, No such file or directory at java.lang.UNIXProcess.forkAndExec(Native Method) at java.lang.UNIXProcess.<init>(UNIXProcess.java:247) at java.lang.ProcessImpl.start(ProcessImpl.java:134) at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029) ... 6 more By checking the TikaServerWatchDog class I noticed that the startProcess method of the ChildProcess private class is using the 'java' argument. As my user only have the JAVA_HOME configured in its /etc/profile and not the path to java, this explains the error. It would be better if the startProcess relies on the JAVA_HOME env var to use java instead of assuming that the java program is configured in the PATH env var of the user. -- This message was sent by Atlassian JIRA (v7.6.3#76005)