[
https://issues.jboss.org/browse/JBIDE-19049?page=com.atlassian.jira.plugi...
]
Rob Stryker commented on JBIDE-19049:
-------------------------------------
tl;dr: Mars is missing functionality for properly using Java 9. Because it's missing
this functionality, the Java 9 jre/jdk is not marked as compatible with the minimum
execution environment for the server, and cannot be used.
If you go to window -> Preferences and type "Execution Environment" you will
see that there is no JavaSE-1.9 execution environment.
Theoretically, java 9 should also show up as valid for a j7 or j8 execution environment,
but it's not.
Tracing through when adding the jre/jdk to "Installed JREs", I see:
{code}
EnvironmentsManager.analyze(IVMInstall, IProgressMonitor) line: 342
EnvironmentsManager.vmAdded(IVMInstall) line: 380
JavaRuntime.fireVMAdded(IVMInstall) line: 2387
{code}
I see the following code:
{code}
Analyzer[] analyzers = getAnalyzers();
for (int i = 0; i < analyzers.length; i++) {
Analyzer analyzer = analyzers[i];
try {
CompatibleEnvironment[] environments = analyzer.analyze(vm, monitor);
{code}
There is only 1 "analyzer", and there are 0 compatible environments for the
given jdk / jre.
Looking in ExecutionEnvironmentAnalyzer, we see the following code:
{code}
if (javaVersion.startsWith("1.8")) //$NON-NLS-1$
types = getTypes(JavaSE_1_8);
else if (javaVersion.startsWith("1.7")) //$NON-NLS-1$
types = getTypes(JavaSE_1_7);
else if (javaVersion.startsWith("1.6")) //$NON-NLS-1$
types = getTypes(JavaSE_1_6);
else if (javaVersion.startsWith("1.5")) //$NON-NLS-1$
types = getTypes(J2SE_1_5);
else if (javaVersion.startsWith("1.4")) //$NON-NLS-1$
types = getTypes(J2SE_1_4);
else if (javaVersion.startsWith("1.3")) //$NON-NLS-1$
types = getTypes(J2SE_1_3);
else if (javaVersion.startsWith("1.2")) //$NON-NLS-1$
types = getTypes(J2SE_1_2);
else if (javaVersion.startsWith("1.1")) { //$NON-NLS-1$
if ((vm instanceof IVMInstall3) && isFoundation1_1((IVMInstall3) vm))
types = getTypes(CDC_FOUNDATION_1_1);
else
types = getTypes(JRE_1_1);
} else if (javaVersion.startsWith("1.0")) { //$NON-NLS-1$
if ((vm instanceof IVMInstall3) && isFoundation1_0((IVMInstall3) vm))
types = getTypes(CDC_FOUNDATION_1_0);
}
{code}
So basically, they're missing an if-statement for java9 as well as a constant for it
etc.
Enable JBoss servers to run with java 9
---------------------------------------
Key: JBIDE-19049
URL:
https://issues.jboss.org/browse/JBIDE-19049
Project: Tools (JBoss Tools)
Issue Type: Feature Request
Components: server
Affects Versions: 4.2.2.Final
Reporter: Martin Malina
Assignee: Rob Stryker
Fix For: 4.3.0.Alpha1
I briefly tried to use java 9 for our tooling and to run servers.
I downloaded it from here:
https://jdk9.java.net/download/
{code}
nattura:8.0.2 rasp$ java -version
java version "1.9.0-ea"
Java(TM) SE Runtime Environment (build 1.9.0-ea-b45)
Java HotSpot(TM) 64-Bit Server VM (build 1.9.0-ea-b45, mixed mode)
{code}
I use OS X 10.10 Yosemite.
There are a couple of problems:
1. When I add a WildFly 8.2 server into JBDS 8.0.2, I cannot change the runtime to use
java 9 - it seems we restrict that.
2. Even if I could, we need to make sure -XX:MaxPermSize is not used in the server launch
command. When I tried to run WildFly 8.2 from the terminal, it wouldn't work unless I
removed the max perm size argument. Apparently java 9 does not just ignore this parameter
(as java 8 did), but it does not allow it at all.
{code}
nattura:bin rasp$ ./standalone.sh
=========================================================================
JBoss Bootstrap Environment
JBOSS_HOME: /Users/rasp/jbossqa/runtimes/wildfly-8.2.0.Final
JAVA: /Library/Java/JavaVirtualMachines/jdk1.9.0.jdk/Contents/Home/bin/java
JAVA_OPTS: -server -Xms64m -Xmx512m -XX:MaxPermSize=256m
-Djava.net.preferIPv4Stack=true -Djboss.modules.system.pkgs=org.jboss.byteman
-Djava.awt.headless=true
=========================================================================
Unrecognized VM option 'MaxPermSize=256m'
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.
{code}
Of course it's questionable if we should allow java 9 for current servers at all as
they don't support it officially. But I would say there is no need to restrict it if
it works.
--
This message was sent by Atlassian JIRA
(v6.3.11#6341)