如何解决JavaFX:创建媒体对象会导致java.lang.reflect.InvocationTargetException错误
我目前正在开发一个简单的游戏,并且尝试使用JavaFX实现声音,并且在创建Media对象时收到java.lang.reflect.InvocationTargetException错误。 我尝试过:
app.get('/api/buckets',(req,res) => {
console.log("LOGS");
console.log(req.query.bucket_name);
console.log(req.query.file_name);
if (req.query.bucket_name) {
queries.getAllFilesFromSpecificBucket(req.query.bucket_name).then(bucket => {
res.json(bucket);
}).catch(err => res.json(err))
} else {
queries.listOfBuckets().then(data => {
res.json(data);
}).catch(err => res.json(err))
}
})
Media media = new Media("file:sounds/test.mp3");
,并且在我的PC上都具有完整的文件路径。
这是我得到的错误:
Media media = new Media(new File("file:sound/test.mp3").toURI().toString());
解决方法
错误消息显示NoClassDefFoundError: javafx/scene/media/Media
,这表明它没有找到Media类。
解决方案是将vm参数添加到您的项目中。
右键单击项目>运行方式>运行配置...
单击“参数”,然后将以下内容粘贴到vm参数中:
--module-path "/path/to/javafx-sdk/lib" --add-modules javafx.media
根据您的项目,您可能还必须添加javafx.controls
和javafx.fxml
。
--module-path "/path/to/javafx-sdk/lib" --add-modules javafx.controls,javafx.fxml,javafx.media
将/path/to/javafx-sdk/lib
替换为系统中lib文件夹的实际路径。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。