JDK8 is not supported with Dalvik. However, JavaFX requires JDK8 in two
different ways:
1) It requires JDK8 syntax (default methods, lambdas, optional use of
final ...)
2) It requires JDK8 class libraries (there are references to classes
that are new in JDK8)
So far, we have limited and worded around 1) and Johan has implemented
the missing classes for 2).
My understanding is that RetroLabmda will be used to fix the problems
associated with 1). Since this works on byte codes, JDK8 will need to
be used to create the byte codes and compile the syntax.
Johan?
Steve
On 2014-02-20 1:49 PM, Felix Bembrick wrote:
Isn't that because they need to use the Dalvik Java classes and JDK 8
is not supported with Dalvik?
On 21 February 2014 05:22, Stephen F Northover
<steve.x.northo...@oracle.com <mailto:steve.x.northo...@oracle.com>>
wrote:
On 2014-02-19 12:46 PM, Johan Vos wrote:
Is there a policy on the location where properties are defined?
I see there are properties on a number of places:
build.properties (e.g. jfx.build.jdk.version=1.8.0)
build.gradle (e.g. ext.JAVA_HOME = JDK_HOME)
buildSrc/(e.g. linux).gradle (e.g. LINUX.compileSwing = true;)
command line properties (e.g. -Djfx.build.jdk.defenders=true)
The reason I'm asking:
for Android/Dalvik, we don't require jfxBuildJdkVersion to be
1.8.0. There
are a number of ways to fix this. The current test is
if (jdkVersion != jfxBuildJdkVersion) {
fail("java version mismatch: ${jdkVersion} must be
${jfxBuildJdkVersion}")
}
We build the Android/Dalvik runtime with Java 7, hence this
check fails.
We can either change jfx.build.jdk.version in build.properties
(but not
conditionally), or we can skip the test if
System.getProperty("jfx.build.jdk.defenders) is true, or we
can check if
the OS is Dalvik, or... or...
Is there a reason why you cannot build with 8? You will need to
accept 8 syntax (like lambdas).
I don't want to pollute the build files with too many tests,
so I prefer to
stick to the policy, if there is one.
Thanks,
- Johan