我一直在尝试为 javafx 编译并运行此示例 https://openjfx.io/openjfx-docs/#maven在 Windows 10 上使用 Cygwin。需要一段时间才能通过编译,因为我的 javafx 存储在 C:\Program Files\javafx-sdk-13.0.1 中,问题是文件夹名称中的空格。在尝试了很多不同的事情之后,我终于找到了How to cd into a directory with space in the name? ,简而言之,它告诉您在环境变量“PATH_TO_FX”周围加上引号。
然后我尝试运行该示例
$ java --module-path "PATH_TO_FX":mods -m hellofx/hellofx.HelloFX引导层初始化期间发生错误java.nio.file.InvalidPathException:索引10处的非法字符<:>:PATH_TO_FX:mods
所以我认为 PATH_TO_FX 是问题所在,但事实证明并非如此。
$ java --module-path src:mods -m hellofx/hellofx.HelloFX
引导层初始化时发生错误java.nio.file.InvalidPathException:索引3处的非法字符<:>:src:mods
src 是一个有效的目录,但我仍然遇到同样的问题。我认为这与 java 存储在带有空格的目录中有关,但我不确定。
最佳答案
@Ray_Write
isn't ; for Windows? Cygwin uses bash
这与外壳无关。 --module-path
的解析完全由java解释器处理,according to the docs在 Windows 上使用 ;
而不是 :
,大概是为了与 Windows PATH
分隔符保持一致。
由于此 Java 安装是 native Windows 应用程序,而不是为 Cygwin 构建的应用程序,因此仍应使用 ;
。所以实际上,这与 Cygwin 无关。
要将文件路径传递给 java,您可能还需要使用 cygpath将路径转换为其 native Windows 路径。
关于java - 如何使用 Cygwin 运行 Java 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59342968/