按照https://openjfx.io/openjfx-docs/#install-javafx的说明,我通过以下方式编译了示例HelloFX. java:
javac --module-path $PATH_TO_FX --add-modules=javafx.controls /Users/me/Documents/java/HelloFX.java
但是现在如果我试着运行它。。。
java --module-path $PATH_TO_FX --add-modules=javafx.controls /Users/me/Documents/java/HelloFX
... 我得到一个错误:
Error: Could not find or load main class .Users.me.Documents.java.HelloFX
Caused by: java.lang.ClassNotFoundException: /Users/me/Documents/java/HelloFX
然而,报告为未找到的文件在那里:
ls -l /Users/me/Documents/java/HelloFX.class
-rwxr--r-- 1 me staff 1336 Oct 30 16:01 /Users/murray/Documents/java/HelloFX.class
(我已经将权限更改为添加u x
,以防出现问题,但显然这不是问题所在。
怎么了?
(是的,$PATH_TO_FX
指向javafx-sdk-11/lib
)
openjfx开发人员邮件列表中已经回答了这个问题:
“java”命令需要一个完全限定的类名,而不是作为其参数的文件路径
完成时:
>
javac [ options ] [ sourcefiles ]
但是,java命令处理类:
java [options] mainclass [args...]
其中mainclass
指定要启动的类的名称,而不是文件名或位置。
如果您已经安装了Java11(并在其中设置了JAVA_HOME
),则下载了JavaFX 11 SDK,并遵循入门指南:
>
将HelloFX类下载到任何位置,即/Users/
打开一个终端和cd到该位置:
cd /Users/<user>/Downloads
设置JavaFX路径:
export PATH_TO_FX=/path/to/javafx-sdk-11/lib
编译类:
javac --module-path $PATH_TO_FX --add-modules=javafx.controls HelloFX.java
检查在同一文件夹级别创建了
HelloFX. class
。
运行该类:
java --module-path $PATH_TO_FX --add-modules=javafx.controls HelloFX
它应该运行良好。
现在,如果您尝试从不同的位置运行上述命令,它将无法工作,因为类路径中不可用的
HelloFX
类。
因此,如果要从其他位置运行此类,则需要指定以下类路径:
javac --module-path $PATH_TO_FX --add-modules=javafx.controls \
/Users/<user>/Downloads/HelloFX.java
java --module-path $PATH_TO_FX --add-modules=javafx.controls \
--class-path /Users/<user>/Downloads HelloFX
按照https://openjfx.io/openjfx-docs/#安装-javafx https://openjfx.io/openjfx-docs/#安装-javafx的说明,我通过以下方式编译了示例hellofx.java: 我有错误: 错误:找不到模块:javafx.controls 1错误 然后按照指令添加行:javac--module-path$path_to_fx--add mod
我有一个简单的测试设置,如 但当我尝试编译测试时,我会遇到53个错误,比如 实际上并没有传达任何关于问题所在的有用信息。我只能假设在我的构建中没有正确配置某些内容。sbt文件或其他地方。 这段代码确实曾经工作过,在我清理东西的过程中,事情发生了变化,现在它被破坏了,没有好的诊断。 有人能提出要找的东西吗?
奇怪的是,标记为“OK”的行编译得很好,但标记为“Error”的行失败了。它们看起来基本上是一样的。
我目前正在一个名为“C:\Users\Acer\Mega\Megasync Uploads\Second Year\First Semerture\Data Structures and Algorithms\Genetic Algorithms”的文件夹中用VSCODE制作一个java文件。但是,当我点击Run时,一个错误迫使我添加父文件夹“Data Structures and Algorit
此代码可编译但不运行;当我试图运行这个程序时,它会给出一个。我做错了什么?
发生在运行时,因为编译器不能在决定执行哪个函数,但为什么编译器不能在编译时决定呢? 产出: 狗在吃...