[arch-dev-public] JAVA_HOME in systemd
---------- Forwarded message ---------- From: Leonidas Spyropoulos <artafinde@gmail.com> Date: 6 February 2013 14:52 Subject: Re: [arch-dev-public] JAVA_HOME in systemd To: guillaume@archlinux.org On Wed, Feb 6, 2013 at 1:36 PM, Jan Steffens <jan.steffens@gmail.com> wrote:
On Wed, Feb 6, 2013 at 1:58 PM, Gaetan Bisson <bisson@archlinux.org> wrote:
You can always have each Java runtime provide a different file, and include all of them in each Java service file using
EnvironmentFile=-/path/to/java/runtime/number/one EnvironmentFile=-/path/to/java/runtime/number/two
etc.
You can also pass a wildcard expression, avoiding hardcoding several files, maybe like this:
EnvironmentFile=-/etc/java-runtime.d/* EnvironmentFile=-/etc/java-runtime
Needs testing, but could allow the user to set a default runtime via symlink.
Alternatively, just EnvironmentFile=/etc/java-runtime and create this symlink at post_install of every java-runtime, if it doesn't exist already. To be tidy, post_remove then deletes the file if java-runtime.d doesn't exist anymore.
I can't send to mailing list as I am not a dev / TU. Isn't it possible to detect the JDK on runtime? Getting it from the java command? (or the javac command) -- Caution: breathing may be hazardous to your health. #include <stdio.h> int main(){printf("%s","\x4c\x65\x6f\x6e\x69\x64\x61\x73");}
On 6 February 2013 15:08, Guillaume ALAUX <guillaume@archlinux.org> wrote:
---------- Forwarded message ---------- From: Leonidas Spyropoulos <artafinde@gmail.com> Date: 6 February 2013 14:52 Subject: Re: [arch-dev-public] JAVA_HOME in systemd To: guillaume@archlinux.org
On Wed, Feb 6, 2013 at 1:36 PM, Jan Steffens <jan.steffens@gmail.com> wrote:
On Wed, Feb 6, 2013 at 1:58 PM, Gaetan Bisson <bisson@archlinux.org> wrote:
You can always have each Java runtime provide a different file, and include all of them in each Java service file using
EnvironmentFile=-/path/to/java/runtime/number/one EnvironmentFile=-/path/to/java/runtime/number/two
etc.
You can also pass a wildcard expression, avoiding hardcoding several files, maybe like this:
EnvironmentFile=-/etc/java-runtime.d/* EnvironmentFile=-/etc/java-runtime
Needs testing, but could allow the user to set a default runtime via symlink.
Alternatively, just EnvironmentFile=/etc/java-runtime and create this symlink at post_install of every java-runtime, if it doesn't exist already. To be tidy, post_remove then deletes the file if java-runtime.d doesn't exist anymore.
I can't send to mailing list as I am not a dev / TU. Isn't it possible to detect the JDK on runtime? Getting it from the java command? (or the javac command)
-- Caution: breathing may be hazardous to your health.
#include <stdio.h> int main(){printf("%s","\x4c\x65\x6f\x6e\x69\x64\x61\x73");}
The point is to enable the user to statically set which JRE must be used. Detecting it at each java app runtime would not be ideal. And I'd also rather not have to list all potential JRE in all java systemd files. Creating a symlink at post_install if it does not already exist looks nice to me.
On Feb 6, 2013 3:09 PM, "Guillaume ALAUX" <guillaume@archlinux.org> wrote:
On 6 February 2013 15:08, Guillaume ALAUX <guillaume@archlinux.org> wrote:
---------- Forwarded message ---------- From: Leonidas Spyropoulos <artafinde@gmail.com> Date: 6 February 2013 14:52 Subject: Re: [arch-dev-public] JAVA_HOME in systemd To: guillaume@archlinux.org
On Wed, Feb 6, 2013 at 1:36 PM, Jan Steffens <jan.steffens@gmail.com>
wrote:
On Wed, Feb 6, 2013 at 1:58 PM, Gaetan Bisson <bisson@archlinux.org> wrote:
You can always have each Java runtime provide a different file, and include all of them in each Java service file using
EnvironmentFile=-/path/to/java/runtime/number/one EnvironmentFile=-/path/to/java/runtime/number/two
etc.
You can also pass a wildcard expression, avoiding hardcoding several files, maybe like this:
EnvironmentFile=-/etc/java-runtime.d/* EnvironmentFile=-/etc/java-runtime
Needs testing, but could allow the user to set a default runtime via symlink.
Alternatively, just EnvironmentFile=/etc/java-runtime and create this symlink at post_install of every java-runtime, if it doesn't exist already. To be tidy, post_remove then deletes the file if java-runtime.d doesn't exist anymore.
I can't send to mailing list as I am not a dev / TU. Isn't it possible to detect the JDK on runtime? Getting it from the java command? (or the javac command)
-- Caution: breathing may be hazardous to your health.
#include <stdio.h> int main(){printf("%s","\x4c\x65\x6f\x6e\x69\x64\x61\x73");}
The point is to enable the user to statically set which JRE must be used. Detecting it at each java app runtime would not be ideal.
And I'd also rather not have to list all potential JRE in all java systemd files.
Creating a symlink at post_install if it does not already exist looks nice to me.
The symlink seems reasonable to me. It would be nice if all the distros/upstreams could agree on a scheme though as this does not sound Arch/systemd specific. Cheers, Tom
On 6 February 2013 15:46, Tom Gundersen <teg@jklm.no> wrote:
On Feb 6, 2013 3:09 PM, "Guillaume ALAUX" <guillaume@archlinux.org> wrote:
On 6 February 2013 15:08, Guillaume ALAUX <guillaume@archlinux.org> wrote:
---------- Forwarded message ---------- From: Leonidas Spyropoulos <artafinde@gmail.com> Date: 6 February 2013 14:52 Subject: Re: [arch-dev-public] JAVA_HOME in systemd To: guillaume@archlinux.org
On Wed, Feb 6, 2013 at 1:36 PM, Jan Steffens <jan.steffens@gmail.com>
wrote:
On Wed, Feb 6, 2013 at 1:58 PM, Gaetan Bisson <bisson@archlinux.org> wrote:
You can always have each Java runtime provide a different file, and include all of them in each Java service file using
EnvironmentFile=-/path/to/java/runtime/number/one EnvironmentFile=-/path/to/java/runtime/number/two
etc.
You can also pass a wildcard expression, avoiding hardcoding several files, maybe like this:
EnvironmentFile=-/etc/java-runtime.d/* EnvironmentFile=-/etc/java-runtime
Needs testing, but could allow the user to set a default runtime via symlink.
Alternatively, just EnvironmentFile=/etc/java-runtime and create this symlink at post_install of every java-runtime, if it doesn't exist already. To be tidy, post_remove then deletes the file if java-runtime.d doesn't exist anymore.
I can't send to mailing list as I am not a dev / TU. Isn't it possible to detect the JDK on runtime? Getting it from the java command? (or the javac command)
-- Caution: breathing may be hazardous to your health.
#include <stdio.h> int main(){printf("%s","\x4c\x65\x6f\x6e\x69\x64\x61\x73");}
The point is to enable the user to statically set which JRE must be used. Detecting it at each java app runtime would not be ideal.
And I'd also rather not have to list all potential JRE in all java systemd files.
Creating a symlink at post_install if it does not already exist looks nice to me.
The symlink seems reasonable to me. It would be nice if all the distros/upstreams could agree on a scheme though as this does not sound Arch/systemd specific.
Cheers,
Tom
Someone [0] proposed a clean/clever solution. What about a symlink /usr/lib/jvm/default-java pointing to the required runtime environment? Each Java runtime would need to check if this link already exists. If not then just create it to point at the newly installed JRE, if it already exists then just warn the user about it and how to modify it. Systemd service files could then use 'Environment=JAVA_HOME=/usr/lib/jvm/default-java' or if they wish use a specific one. [0] http://stackoverflow.com/a/663726
participants (2)
-
Guillaume ALAUX
-
Tom Gundersen