On Fri, 24 Apr 2020 17:07:25 GMT, John Neffenger 
<github.com+1413266+jgn...@openjdk.org> 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

Reply via email to