我使用gluon插件创建新的单个视图项目,并在其文件中没有任何更改。如果我使用gradle任务application > run
,它工作正常。但是,如果使用了TAKS build > jar
它创建的JAR SingleViewProject\build\libs
下,当我在命令行中运行它,我得到使用Gradle任务创建后,可执行jar无法找到或加载主类
Error: Could not find or load main class com.gluonapplication.GluonApplication
这是不变的build.gradle:
buildscript {
repositories {
jcenter()
}
dependencies {
classpath 'org.javafxports:jfxmobile-plugin:1.1.1'
}
}
apply plugin: 'org.javafxports.jfxmobile'
repositories {
jcenter()
maven {
url 'http://nexus.gluonhq.com/nexus/content/repositories/releases'
}
}
mainClassName = 'com.gluonapplication.GluonApplication'
dependencies {
compile 'com.gluonhq:charm:4.1.0'
}
jfxmobile {
downConfig {
version = '3.0.0'
plugins 'display', 'lifecycle', 'statusbar', 'storage'
}
android {
manifest = 'src/android/AndroidManifest.xml'
}
ios {
infoPList = file('src/ios/Default-Info.plist')
forceLinkClasses = [
'com.gluonhq.**.*',
'javax.annotations.**.*',
'javax.inject.**.*',
'javax.json.**.*',
'org.glassfish.json.**.*'
]
}
}
和“主类“:
package com.gluonapplication;
import com.gluonhq.charm.glisten.application.MobileApplication;
import com.gluonhq.charm.glisten.visual.Swatch;
import javafx.scene.Scene;
import javafx.scene.image.Image;
import javafx.stage.Stage;
public class GluonApplication extends MobileApplication {
public static final String BASIC_VIEW = HOME_VIEW;
@Override
public void init() {
addViewFactory(BASIC_VIEW,() -> new BasicView(BASIC_VIEW));
}
@Override
public void postInit(Scene scene) {
Swatch.BLUE.assignTo(scene);
((Stage) scene.getWindow()).getIcons().add(new Image(GluonApplication.class.getResourceAsStream("/icon.png")));
}
}
这是真的,有在课堂上没有main
方法,但你不应该需要一个。它直接从IDE运行。有什么问题?
很酷。你能帮我“添加插件”吗?我结帐该项目并建立一个罐子,然后包括它? – Mark
我只是做了...我发布的代码已经包含了您需要做的所有事情:添加一个插件仅需要引用依赖关系并使用'apply plugin ...'。 Gradle为你管理。 –
啊,太棒了!谢谢。如果任何人仍将在'build'下查看,我还会添加回答,即构建阴影jar的gradle任务位于'projectName/shadow/shadowJar'下。 – Mark