我试图建立一个虚拟钢琴应用程序,我需要MediaPlayer类来播放音符,我的项目是一个模块化的maven项目,包含fxml,javafx 11.0.2和java 14。
我无法导入 MediaPlayer 类的问题,我试图添加需要 javafx.media;
到我的模块信息中.java但它无论如何都无法识别它。这是我的模块信息.java
module org.project {
requires javafx.controls;
requires javafx.fxml;
opens org.project to javafx.fxml;
exports org.project;
}
也尝试下载库jar,但它是空的。
还试图在pom中添加maven依赖项。xml文件,如下所示:
<!-- https://mvnrepository.com/artifact/org.openjfx/javafx.media -->
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx.media</artifactId>
<version>11.0.0-ea1</version>
<type>pom</type>
</dependency>
我的pom.xml依赖项:
<dependencies>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-fxml</artifactId>
<version>11.0.2</version>
</dependency>
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-controls</artifactId>
<version>11.0.2</version>
</dependency>
<!-- https://mvnrepository.com/artifact/org.openjfx/javafx.media -->
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx.media</artifactId>
<version>15</version>
<type>pom</type>
</dependency>
</dependencies>
它显示没有找到存储库。
我发现了我的错误,我需要添加javafx。我安装javafx的目录中的媒体,如下C:\Program Files\openjfx-14.0.2.1_windows-x64_bin-sdk\javafx-sdk-14.0.2.1\lib
要做到这一点,我需要去文件
然后我选择了javafx.media.jar
这样做后,module-info.java可以识别模块。
注意:此答案也适用于其他JavaFX模块,例如fxml和web。
javafx.media
是一个模块,您需要在module-info.java中要求它,就像您对javafx.controls
和javafx.fxml
所做的那样。
module org.project {
requires javafx.controls;
requires javafx.fxml;
requires javafx.media;
opens org.project to javafx.fxml;
exports org.project;
}
可能还有其他问题,但这是一个可能的问题。
我不建议使用< code>11.0.0-ea1版本,还有更稳定的版本。JavaFX的最新稳定版本是15 https://mvnrepository . com/artifact/org . open jfx/javafx-media/15,所以我建议您对所有Java FX依赖项使用该版本。
<!-- https://mvnrepository.com/artifact/org.openjfx/javafx.media -->
<dependency>
<groupId>org.openjfx</groupId>
<artifactId>javafx-media</artifactId>
<version>15</version>
<type>pom</type>
</dependency>
对于以后提到这篇文章的读者,请使用mvnrepository或类似搜索工具可以找到的最新非早期访问版本。
试图下载库jar,但它是空的
不要为JavaFX依赖项这样做。JavaFX需要同时包含本地库和Java库。仅仅下载Jar文件可能不适合您,因为您可能会丢失所需的内容。此外,可能需要对库进行可传递的导入,这一点再次说明,仅仅下载一个jar是无法实现的。您已经在Maven中使用了依赖层次结构构建工具,只需正确配置和使用它,让它完成它的工作。
此外,我认为< code>javafx.media工件被错误地命名、配置并上传到maven central,这就是为什么它在那里只作为< code>11.0.0-ea1版本存在。它应该被命名为< code>javafx-media,这是后续上传中的名称,所以请为工件使用正确的名称,这样最新的版本就包含了maven中央存储库中所有正确的工件数据。
我的pom.xml依赖项
您的 pom.xml 依赖项混合了 JavaFX 版本,用于不同的 JavaFX 依赖项。不要这样做,不同的版本将不兼容。对所有 JavaFX 依赖关系使用相同的版本。
我去存档了
您应该让您的IDE重新导入更新的maven项目并自动解析依赖项,而不是手动将库添加到IDE项目中。
有关Idea,请参见:
对于其他 IDE,过程会有所不同。
如果您想使用WebView、FXML或控件,请在此处使用示例模块和依赖项名称。
使用这些模块的所有步骤与javafx相同。media
模块,只有名称更改。
示例模块名称:
javafx.web
javafx.swing
javafx.fxml
javafx.media
javafx.controls
示例依赖项项目名称:
javafx-web
javafx-swing
javafx-fxml
javafx-media
javafx-controls
问题内容: 我试图从命令promopt运行一个示例Java应用程序,但出现以下错误: 我用来尝试运行此应用的命令是: 所有相关文件都位于当前工作目录中(.java,.class和.jar文件) 我用来构建.class文件的命令如下(有2个.java文件): 再次从同一工作目录运行-的内容(或多或少): 我试图以C#开发人员的身份学习Java,所以我在编程概念方面拥有深厚的背景,整个Java工具链目
我在我的项目中使用 jQuery 时遇到了问题(使用 Angular 和 boosted,这是引导程序的一个分支)。错误如下: 文件夹/包含/my/component.ts中的错误:错误TS2581:找不到名称“$”。您需要为jQuery安装类型定义吗?尝试。 我已经安装了< code>@types/jquery和< code>jquery,并且在angular.json文件中添加了脚本:
问题内容: 当我尝试在IntelliJ中创建项目时,在此行上收到以下错误: 错误: 是实现 接口* 的类 * 所有软件包都存在,我可以跳转到每个接口或类的声明,但是我不知道为什么IntellJ说它无法访问或找到它们?但是是接口而不是类 上面的声明位于一个名为jar的jar文件中,并且存在于Project图书馆员中。 问题答案: 该项目包含几个模块。在将库添加到项目库后,某些模块在其依赖项中缺少它。
问题内容: 最近进入一个新项目,我正在尝试编译我们的源代码。昨天一切正常,但是今天又是另一个故事了。 每次我在模块上运行时,一旦通过测试,就会崩溃为错误: 后来: 我正在使用OpenJDK 1.8.0_181,Maven 3.5.4 在Debian 9 (Stretch)64位上运行,并在我的中配置了公司代理。 如果我没记错的话,最新的Surefire版本是2.22.1,这很奇怪。我试图指定插
SNMPAgent。JAVA snmp代理类使用的托管对象:MOCreator。JAVA SNMPManager。JAVA TestSNMPAgent.java 这就是我编译代码的方式(我已经有snmp4j和api的代理. jar文件) javac-d.-cp"snmp4j-2.5.0.jar:snmp4j-agent-2.5.0.jar"*. java 这就是我执行代码的方式 Java-cp"s
在Eclipse中,我使用JavaFX、Maven和jre 1.8。0_45。 通常,当我尝试以这种方式使用Maven编译时(运行方式- 当我将其更改为jdk(在配置、窗口属性、maven配置中随处可见)并尝试运行/构建/编译/无论遇到什么错误 没有给我上课。就这个。 我通过在我的pom中添加到javac的路径并保留jre包来解决这个问题 这是可行的。 但我还是想知道——为什么会发生这种错误?我做