Bug 1098508 - all jpackage following launchers are using by defalt JDK instead of JRE
Summary: all jpackage following launchers are using by defalt JDK instead of JRE
Keywords:
Status: CLOSED NOTABUG
Alias: None
Product: Fedora
Classification: Fedora
Component: javapackages-tools
Version: rawhide
Hardware: All
OS: Linux
low
low
Target Milestone: ---
Assignee: Mikolaj Izdebski
QA Contact: Fedora Extras Quality Assurance
URL:
Whiteboard:
Depends On:
Blocks: 1098509
TreeView+ depends on / blocked
 
Reported: 2014-05-16 11:40 UTC by jiri vanek
Modified: 2015-03-16 11:26 UTC (History)
9 users (show)

Fixed In Version:
Clone Of:
: 1098509 (view as bug list)
Environment:
Last Closed: 2015-03-16 11:26:44 UTC
Type: Bug
Embargoed:


Attachments (Terms of Use)

Description jiri vanek 2014-05-16 11:40:58 UTC
Description of problem:
When alternatives are used to change jre (alternatives --config java) the all  jpackage compatible java apps, are still using the java specified by JDK (alternatives --config javac)

This is wrong. Especially for case when I have one JDK and one JRE. Then I can use alternatives as , and still only JDK will
 be selected.
Version-Release number of selected component (if applicable):
All fedoras and rhels till now

How reproducible:


Steps to Reproduce on f20:
1. $ install java-1.7.0-openjdk-devel, and java-1.8.0-oepnjdk
2. $ alternatives --configure java
3. select java 8
4. # run some packed java app

Expected results:
java8 will be used 

Actual results:
java 7 is still used
To use java 8 you ust install java-1.8.0-openjdk-devel
and select java 8 via $alternatives --config javac


Additional info:
Currently jpackage-utils are using JDK by default. Any app which wonts to use only JRE must specifi _prefer_jre=true to luncher.
Well this is wrong in design. All apps should use JRE by default, and only few (10?) apps using whole JDK should specifi _prefer_jre=false.

Another workarouds ae set JAVA_HOME or edit /etc/java/java.conf But htose are far away from compfortable alternatives solution.


As reason not to do the change was introduced ant - that it needs whole JDK to run. IMHO it is one of the few apps which should specifu _prefer_jre=false...


Fix is quite simple
Change /usr/share/java-utils/java-functions to use /usr/lib/jvm/jre instead of /usr/lib/java

However, the consequences may be really huge.

Comment 1 Mikolaj Izdebski 2015-03-10 10:21:53 UTC
jpackage-utils has been replaced with javapackages-tools, moving to appropriate component.

This is intentional behavior. If both JRE and JDK are installed then *by default* JDK will be used, regardless of version. Applications that don't require JDK features and can work with plain JRE can (and should) set _prefer_jre=true, in which case JRE is always used, if installed.

This will be closed as NOTABUG unless you can convince me otherwise.

Comment 2 jiri vanek 2015-03-10 11:23:28 UTC
Yes.  I agree. After many many discussions about this, sure. You are the head here :)

Maybe nit -  set _prefer_jre=true - should be probably highlighted in java packaging guidelines.

Comment 3 Mikolaj Izdebski 2015-03-16 11:26:44 UTC
(In reply to jiri vanek from comment #2)
> Maybe nit -  set _prefer_jre=true - should be probably highlighted in java
> packaging guidelines.

This is already documented well enough IMO:

"One thing to pay attention to is the 6th argument to it - whether to prefer a JRE over a full SDK when looking up a JVM to invoke - most packages that don’t require the full Java SDK will want to set that to true to avoid unexpected results when looking up a JVM when some of the installed JRE’s don’t have the corresponding SDK (*-devel package) installed."

(from https://fedorahosted.org/released/javapackages/doc/#_generating_application_shell_scripts)


Closing as NOTABUG.


Note You need to log in before you can comment on or make changes to this bug.