Bug 1098508

Summary: all jpackage following launchers are using by defalt JDK instead of JRE
Product: [Fedora] Fedora Reporter: jiri vanek <jvanek>
Component: javapackages-toolsAssignee: Mikolaj Izdebski <mizdebsk>
Status: CLOSED NOTABUG QA Contact: Fedora Extras Quality Assurance <extras-qa>
Severity: low Docs Contact:
Priority: low    
Version: rawhideCC: akurtako, java-sig-commits, jerboaa, jvanek, mat.booth, mizdebsk, msimacek, msrb, sochotni
Target Milestone: ---   
Target Release: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Story Points: ---
Clone Of:
: 1098509 (view as bug list) Environment:
Last Closed: 2015-03-16 11:26:44 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:
Bug Depends On:    
Bug Blocks: 1098509    

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.