【问题标题】:How to export a .jar file from a gluon project?如何从胶子项目中导出 .jar 文件?
【发布时间】:2017-11-27 02:15:57
【问题描述】:

知道如何导出包含 gluon 项目中所有内容的 .jar 吗? 我使用了Shadow jar,但结果无法打开并给出

    Exception in Application start method
Exception in thread "main" java.lang.reflect.InvocationTargetException
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.base/java.lang.reflect.Method.invoke(Unknown Source)
        at java.base/sun.launcher.LauncherHelper$FXHelper.main(Unknown Source)
Caused by: java.lang.RuntimeException: Exception in Application start method
        at javafx.graphics/com.sun.javafx.application.LauncherImpl.launchApplication1(Unknown Source)
        at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication$2(Unknown Source)
        at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.lang.NoClassDefFoundError: com/sun/javafx/css/converters/SizeConverter
        at com.gluonhq.charm.glisten.control.AppBar.<clinit>(SourceFile:406)
        at com.gluonhq.charm.glisten.application.MobileApplication.start(SourceFile:191)
        at javafx.graphics/com.sun.javafx.application.LauncherImpl.lambda$launchApplication1$9(Unknown Source)
        at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runAndWait$11(Unknown Source)
        at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$9(Unknown Source)
        at java.base/java.security.AccessController.doPrivileged(Native Method)
        at javafx.graphics/com.sun.javafx.application.PlatformImpl.lambda$runLater$10(Unknown Source)
        at javafx.graphics/com.sun.glass.ui.InvokeLaterDispatcher$Future.run(Unknown Source)
        at javafx.graphics/com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
        at javafx.graphics/com.sun.glass.ui.win.WinApplication.lambda$runLoop$3(Unknown Source)
        ... 1 more
Caused by: java.lang.ClassNotFoundException: com.sun.javafx.css.converters.SizeConverter
        at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source)
        at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source)
        at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
        ... 11 more

【问题讨论】:

  • 您运行的是 Java 9 吗?您项目的依赖项(即 Charm 4.4.1)仅适用于 Java 8
  • 所以这个jar文件只能在带有java 8的电脑上运行吧?
  • 是的,它需要 Java 8。或者,您可以使用 Java 9 依赖项 (charm:4.4.0-jdk9)。
  • 谢谢它的工作!你真的很有帮助。我很感激
  • 谢谢,很高兴它成功了。我会把它作为答案发布,因为其他人可能会面临同样的问题。

标签: javafx gluon gluon-mobile javafxports


【解决方案1】:

要导出 Gluon 项目的 jar 以便它在桌面上运行,您可以使用 Shadow plugin 就像在这个 answer 中一样,或者您可以使用内置任务 jar 或 `distZip,但需要考虑到您需要修改构建以包含桌面依赖项,如here

之后,生成的 jar 将根据您使用的依赖项在 Java 8 或 Java 9 上运行。

到目前为止,常规的 jfxmobile 插件使用 Java 8 的依赖项:

buildscript {
    repositories {
        jcenter()
    }
    dependencies {
        classpath 'org.javafxports:jfxmobile-plugin:1.3.9'
    }
}

apply plugin: 'org.javafxports.jfxmobile'

repositories {
    jcenter()
    maven {
        url 'http://nexus.gluonhq.com/nexus/content/repositories/releases'
    }
}

dependencies {
    compile 'com.gluonhq:charm:4.4.1'
}

所以生成的 jar 只能在 Java 8 下运行。

但您可以修改构建以便在桌面上运行 Java 9:

dependencies {
    compile 'com.gluonhq:charm:4.4.0-jdk9'
}

请注意,如果您有其他依赖项,这些依赖项也应该与 Java 9 兼容。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-03-09
    • 2014-03-18
    • 1970-01-01
    • 2014-08-03
    • 2012-03-20
    • 1970-01-01
    • 1970-01-01
    • 2011-04-25
    相关资源
    最近更新 更多