FS#41851 - [java8-openjdk] 8.u20-1: hardcoded path does not exist

Attached to Project: Arch Linux
Opened by Chen Ruichao (sheep0x) - Sunday, 07 September 2014, 06:22 GMT
Last edited by Evangelos Foutras (foutrelis) - Saturday, 13 September 2014, 16:31 GMT
Task Type Bug Report
Category Packages: Extra
Status Closed
Assigned To No-one
Architecture All
Severity Low
Priority Normal
Reported Version
Due in Version Undecided
Due Date Undecided
Percent Complete 100%
Votes 0
Private No

Details

Description:
When installing jre8-openjdk-headless and jdk8-openjdk (as apache-ant's dependency), I get a
/usr/bin/java: line 2: /usr/lib/jvm/java-default-runtime/bin/java: No such file or directory

(After installation, I can run java as usual.)


Possible cause:
In the install script of the two packages (
https://projects.archlinux.org/svntogit/packages.git/tree/trunk/install_jre8-openjdk-headless.sh?h=packages/java8-openjdk
https://projects.archlinux.org/svntogit/packages.git/tree/trunk/install_jdk8-openjdk.sh?h=packages/java8-openjdk
), I found
JAVA_HOME=/usr/lib/jvm/java-default-runtime /usr/bin/init-jks-keystore
.
And init-jks-keystore contains a line like "find ... | java ...".

/usr/bin/java is a symlink to /usr/lib/java-common-wrapper, which contains
exec "${JAVA_HOME:-/usr/lib/jvm/default}/bin/${0##*/}" "$@"
, so it will run /usr/lib/jvm/java-default-runtime/bin/java

However, the contents of my /usr/lib/jvm are:
default/@ default-runtime/@ java-8-openjdk/

I guess this can be fixed by changing the JAVA_HOME to /usr/bin/jvm/default-runtime


Additional info:
* jre8-openjdk-headless-8.u20-1
* jdk8-openjdk-8.u20-1
* installation log: see attached file


Steps to reproduce:
- Make sure jre8-openjdk-headless is not installed
- sudo pacman -S [--asdeps] jre8-openjdk-headless
- The terminal output shows the error
   log (3.9 KiB)
This task depends upon

Closed by  Evangelos Foutras (foutrelis)
Saturday, 13 September 2014, 16:31 GMT
Reason for closing:  Duplicate
Additional comments about closing:   FS#41826 
Comment by Fernando Sanchez (grimpirate) - Monday, 08 September 2014, 13:50 GMT
The new symlink for the java runtime is located in the file /etc/profile.d/jre.sh
It used to be /usr/lib/jvm/java-default{-runtime} now it's /usr/lib/jvm/default{-runtime} hence the messages.

Solution:
Run as root $ archlinux-java fix

Should correct any symlink errors. That's likely the culprit for that line, just a case of non-updated symlinks.
In the case of multiple java runtimes, read here: https://wiki.archlinux.org/index.php/java#Switching_between_JVM
Comment by Chen Ruichao (sheep0x) - Tuesday, 09 September 2014, 10:07 GMT
I've fixed the problem on my system. But I think we should fix the packages too. Otherwise everybody has to run that command.

Loading...