On Fri, 24 Apr 2020 17:07:25 GMT, John Neffenger
<[email protected]> wrote:
>>> To debug the JavaFX on Raspberry Pi I built armv6hf-sdk and just copied the
>>> file _javafx.platform.properties_ from the
>>> full jdk version with JavaFX to jdk-14.0.1/lib directory of jdk without
>>> JavaFX which I used to run my java application
>>> with JavaFX modules from armv6hf-sdk/lib.
>>
>> May I then suggest one additional change to this pull request? It's a
>> two-line fix:
>>
>> --- a/modules/javafx.base/src/main/java/com/sun/javafx/PlatformUtil.java
>> +++ b/modules/javafx.base/src/main/java/com/sun/javafx/PlatformUtil.java
>> @@ -238,8 +238,7 @@ public class PlatformUtil {
>> // Strip everything after the last "/" or "" to get rid of the
>> jar filename
>> int lastIndexOfSlash = Math.max(
>> s.lastIndexOf('/'), s.lastIndexOf('\'));
>> - return new File(new URL(s.substring(0, lastIndexOfSlash +
>> 1)).getPath())
>> - .getParentFile();
>> + return new File(new URL(s.substring(0, lastIndexOfSlash +
>> 1)).getPath());
>> } catch (MalformedURLException e) {
>> return null;
>> }
>>
>> That change corrects the code to look for the `javafx.platform.properties`
>> file in the same directory as the
>> `javafx.base.jar` file instead of looking for it in the parent directory of
>> the JAR file. I just stepped through the
>> code with this change, and the method `PlatformUtil.loadProperties` now
>> finds the properties file in the location where
>> it is packaged by the build in the SDK.
>
> Related issues, including the original request for enhancement:
>
> * [JDK-8100775](https://bugs.openjdk.java.net/browse/JDK-8100775): Means of
> bundling platform specific settings for
> glass/runtime
> * [JDK-8115678](https://bugs.openjdk.java.net/browse/JDK-8115678): JavaFX
> preview on Raspberry Pi
> requires -Djavafx.platform=eglfb to be set
> * [JDK-8117705](https://bugs.openjdk.java.net/browse/JDK-8117705): Embedded
> JavaFX can't find javafx.platform.properties
>
> The last two issues listed above were fixed by the following changeset:
>
> [Fix for RT-28035 (Can't find embedded platform properties) and RT-27194
> (Must set
> javafx.platform)](https://hg.openjdk.java.net/openjfx/8/master/rt/rev/e4577fd9c0f1)
> In JDK 8, all of the Java property files, including
> `javafx.platform.properties`, are located under the `jre/lib`
> directory of the JDK, but the JavaFX 8 JAR file `jfxrt.jar` in found in the
> subdirectory `jre/lib/ext`. The changeset
> above fixed the JavaFX 8 code to look in the parent directory for its
> properties. Now, though, the JavaFX SDK puts the
> JAR file `javafx.base.jar` in the same `lib` directory as the property files,
> so we need to remove the method call that
> changes the path to its parent.
> May I then suggest one additional change to this pull request? It's a
> two-line fix.
> That change corrects the code to look for the `javafx.platform.properties`
> file in the same directory as the
> `javafx.base.jar` file instead of looking for it in the parent directory of
> the JAR file.
I have added the fix for `PlatformUtil.getRTDir()` method to the current pull
request.
-------------
PR: https://git.openjdk.java.net/jfx/pull/193