首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为什么Javafx原生图像不能与javafx.scene.media.MediaPlayer类一起工作?

问为什么Javafx原生图像不能与javafx.scene.media.MediaPlayer类一起工作?
EN

Stack Overflow用户
提问于 2021-03-31 03:12:26
回答 1查看 126关注 0票数 0

我使用gluon插件和graalvm ce 21.0.0在win10上构建了一个本机镜像。如果我在不使用javafx.scene.media.MediaPlayer的情况下构建应用程序,那么客户端工作得很好。如果我使用类javafx.scene.media.MediaPlayer,我意识到文件夹\target\client\x86_64-windows\gvm\tmp\deps不包含javafx-media的jar。但是为什么呢?如何解决这个问题?当我运行客户端时,我得到了以下错误:

代码语言:javascript
复制
[Di. März 30 20:50:58 MESZ 2021][INFO] ==================== RUN TASK ====================
[Di. März 30 20:50:58 MESZ 2021][FINE] Start process run until end...
[Di. März 30 20:50:59 MESZ 2021][INFO] [SUB] Mar 30, 2021 8:50:59 PM ducis.cleptomania.CmApp start
[Di. März 30 20:50:59 MESZ 2021][INFO] [SUB] Exception in Application start method
[Di. März 30 20:50:59 MESZ 2021][INFO] [SUB] Exception in thread "main" java.lang.RuntimeException: Exception in Application start method
[Di. März 30 20:50:59 MESZ 2021][INFO] [SUB]    at com.sun.javafx.application.LauncherImpl.launchApplication1(LauncherImpl.java:900)
[Di. März 30 20:50:59 MESZ 2021][INFO] [SUB]    at com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(LauncherImpl.java:195)
[Di. März 30 20:50:59 MESZ 2021][INFO] [SUB]    at java.lang.Thread.run(Thread.java:834)
[Di. März 30 20:50:59 MESZ 2021][INFO] [SUB]    at com.oracle.svm.core.thread.JavaThreads.threadStartRoutine(JavaThreads.java:519)
[Di. März 30 20:50:59 MESZ 2021][INFO] [SUB]    at com.oracle.svm.core.windows.WindowsJavaThreads.osThreadStartRoutine(WindowsJavaThreads.java:138)
[Di. März 30 20:50:59 MESZ 2021][INFO] [SUB] Caused by: java.lang.NoClassDefFoundError: javafx.scene.media.MediaPlayer
[Di. März 30 20:50:59 MESZ 2021][INFO] [SUB]    at ducis.cleptomania.core.Music.<init>(Music.java:45)
[Di. März 30 20:50:59 MESZ 2021][INFO] [SUB]    at ducis.cleptomania.core.Menu.<init>(Menu.java:26)
[Di. März 30 20:50:59 MESZ 2021][INFO] [SUB]    at ducis.cleptomania.CmApp.start(CmApp.java:60)
[Di. März 30 20:50:59 MESZ 2021][INFO] [SUB]    at com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(LauncherImpl.java:846)
[Di. März 30 20:50:59 MESZ 2021][INFO] [SUB]    at com.sun.javafx.application.PlatformImpl.lambda$runAndWait$12(PlatformImpl.java:455)
[Di. März 30 20:50:59 MESZ 2021][INFO] [SUB]    at com.sun.javafx.application.PlatformImpl.lambda$runLater$10(PlatformImpl.java:428)
[Di. März 30 20:50:59 MESZ 2021][INFO] [SUB]    at java.security.AccessController.doPrivileged(AccessController.java:102)
[Di. März 30 20:50:59 MESZ 2021][INFO] [SUB]    at com.sun.javafx.application.PlatformImpl.lambda$runLater$11(PlatformImpl.java:427)
[Di. März 30 20:50:59 MESZ 2021][INFO] [SUB]    at com.sun.glass.ui.InvokeLaterDispatcher$Future.run(InvokeLaterDispatcher.java:96)
[Di. März 30 20:50:59 MESZ 2021][INFO] [SUB]    at com.oracle.svm.jni.JNIJavaCallWrappers.jniInvoke_VA_LIST:Ljava_lang_Runnable_2_0002erun_00028_00029V(JNIJavaCallWrappers.java:0)
[Di. März 30 20:50:59 MESZ 2021][INFO] [SUB]    at com.sun.glass.ui.win.WinApplication._runLoop(WinApplication.java)
[Di. März 30 20:50:59 MESZ 2021][INFO] [SUB]    at com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(WinApplication.java:174)
[Di. März 30 20:50:59 MESZ 2021][INFO] [SUB]    ... 3 more
[Di. März 30 20:50:59 MESZ 2021][FINE] Result for run until end: 0

这是我的pom.xml:

代码语言:javascript
复制
<properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <maven.compiler.release>11</maven.compiler.release>
    <javafx.version>16</javafx.version>
    <attach.version>4.0.11</attach.version>
    <client.plugin.version>0.1.38</client.plugin.version>
    <javafx.plugin.version>0.0.5</javafx.plugin.version>
    <mainClassName>ducis.cleptomania.CmApp</mainClassName>
</properties>

<dependencies>
    <dependency>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-controls</artifactId>
        <version>${javafx.version}</version>
    </dependency>
    <dependency>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-media</artifactId>
        <version>${javafx.version}</version>
    </dependency>
    <dependency>
        <groupId>org.openjfx</groupId>
        <artifactId>javafx-swing</artifactId>
        <version>${javafx.version}</version>
    </dependency>
    <dependency>
        <groupId>com.gluonhq</groupId>
        <artifactId>charm-glisten</artifactId>
        <version>6.0.6</version>
    </dependency>
    <dependency>
        <groupId>com.gluonhq.attach</groupId>
        <artifactId>display</artifactId>
        <version>${attach.version}</version>
    </dependency>
    <dependency>
        <groupId>com.gluonhq.attach</groupId>
        <artifactId>lifecycle</artifactId>
        <version>${attach.version}</version>
    </dependency>
    <dependency>
        <groupId>com.gluonhq.attach</groupId>
        <artifactId>statusbar</artifactId>
        <version>${attach.version}</version>
    </dependency>
    <dependency>
        <groupId>com.gluonhq.attach</groupId>
        <artifactId>storage</artifactId>
        <version>${attach.version}</version>
    </dependency>
    <dependency>
        <groupId>com.gluonhq.attach</groupId>
        <artifactId>util</artifactId>
        <version>${attach.version}</version>
    </dependency>  
</dependencies>

<repositories>
    <repository>
        <id>Gluon</id>
        <url>https://nexus.gluonhq.com/nexus/content/repositories/releases</url>
    </repository>
</repositories>


<build>
    <plugins>
        <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-compiler-plugin</artifactId>
            <version>3.8.1</version>
        </plugin>

        <plugin>
            <groupId>org.openjfx</groupId>
            <artifactId>javafx-maven-plugin</artifactId>
            <version>${javafx.plugin.version}</version>
            <configuration>
                <mainClass>${mainClassName}</mainClass> 
                <options>
                    <option>-agentlib:native-image-agent=config-merge-dir=src/main/resources/META-INF/native-image</option>
                </options>
            </configuration>
        </plugin>

        <plugin>
            <groupId>com.gluonhq</groupId>
            <artifactId>client-maven-plugin</artifactId>
            <version>${client.plugin.version}</version>
            <configuration>
                <target>${client.target}</target>
                <attachList>
                    <list>display</list>
                    <list>lifecycle</list>
                    <list>statusbar</list>
                    <list>storage</list>
                </attachList>
                <mainClass>${mainClassName}</mainClass>
                <nativeImageArgs>
                     <nativeImageArg>-H:+AllowIncompleteClasspath</nativeImageArg>
                     <nativeImageArg>--initialize-at-build-time=javafx.scene.input.KeyCode</nativeImageArg>
                </nativeImageArgs>
            </configuration>
        </plugin>
    </plugins>
</build>

<profiles>
    <profile>
        <id>desktop</id>
        <activation>
            <activeByDefault>true</activeByDefault>
        </activation>
        <properties>
            <client.target>host</client.target>
        </properties>
        <dependencies>
            <dependency>
                <groupId>com.gluonhq.attach</groupId>
                <artifactId>display</artifactId>
                <version>${attach.version}</version>
                <classifier>desktop</classifier>
            </dependency>
            <dependency>
                <groupId>com.gluonhq.attach</groupId>
                <artifactId>lifecycle</artifactId>
                <version>${attach.version}</version>
                <classifier>desktop</classifier>
            </dependency>
            <dependency>
                <groupId>com.gluonhq.attach</groupId>
                <artifactId>storage</artifactId>
                <version>${attach.version}</version>
                <classifier>desktop</classifier>
            </dependency>
        </dependencies>
    </profile>
    <profile>
        <id>ios</id>
        <properties>
            <client.target>ios</client.target>
        </properties>
    </profile>
    <profile>
        <id>android</id>
        <properties>
            <client.target>android</client.target>
        </properties>
    </profile>
</profiles>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-03-31 19:03:25

正如何塞·佩雷达所写的: Windows还不支持本机镜像的媒体和Web。我怎么不知道。谢谢!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66877115

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档