gpt4 book ai didi

java - 如何获取setupBuilder gradle插件以在Windows开始菜单中创建jar启动器

转载 作者:行者123 更新时间:2023-12-03 05:46:38 25 4
gpt4 key购买 nike

我正在努力获取gradle setupBuilder插件来创建一个安装程序,该程序将带有我为其创建的漂亮图标的Java应用程序的某种启动器(.bat或.exe文件?)添加到Windows10的开始菜单中。它创建一个msi,在运行时创建一个可以正常工作的jar文件。我以为setupBuilder内包裹了launch4j,以便它创建的msi可以创建一个exe或带有我给它的图标的东西,然后自动将其放在开始菜单中。我对Windows一点都不熟悉,所以如果我使用了错误的术语,请原谅我。 (创建一个带有漂亮图标的Mac应用程序非常简单,我想我一定在某个地方犯了一个愚蠢的错误。)

这是我的build.gradle脚本:

plugins {
//For building windows exes/msis
id 'de.inetsoftware.setupbuilder' version "4.5.3c"
}

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'de.inetsoftware.setupbuilder'
apply plugin: 'application'

version = getVersionName()
sourceCompatibility = 1.7
targetCompatibility = 1.7

repositories {
mavenCentral()
}

dependencies {
... <removed for brevity>
}

sourceSets {
main {
java {
srcDir 'src/main/java/LinkedView/src/'

... <removed for brevity>
}
}
}

task fatJar(type: Jar) {
manifest {
attributes 'Main-Class':'edu.stanford.genetics.treeview.app.TreeView3'
}
baseName = project.name + '-all'
from {configurations.compile.collect {it.isDirectory() ? it : zipTree(it)}}
with jar
}

def getVersionName() {
def stdout = new ByteArrayOutputStream()
exec {
// might be useful for later version management
// commandLine 'git', 'describe', '--tags'
commandLine 'git', 'rev-parse', '--short', 'HEAD'
standardOutput = stdout
}
return stdout.toString().trim()
}

//SetupBuilder attempt...
setupBuilder {
vendor = 'Princeton University Bioinformatics Group'
application = "TreeView3"
appIdentifier = "TreeView3"
description = "Clustering heatmap browser"
version = '1.0'
icons = 'src/main/resources/TreeView3.icns'
licenseFile = 'LICENSES/LICENSE'
from fatJar.outputs
bundleJre = 1.7
mainClass = 'edu.stanford.genetics.treeview.app.TreeView3'
mainJar = 'TreeView3.jar'
}

msi {

}

如何将jar文件的启动器(带有我的图标)添加到开始菜单?

最佳答案

您可以在setupBuilder块内添加一个desktopStarter块,但是,如果要专门针对Windows的msi进行此操作,则可以将其放在msi块内,如下所示:

msi {
setupBuilder.desktopStarter {
displayName = 'TreeView3'
executable = 'treeview3' + '-all-' + getVersionName() + '.jar'
}
}

关键是只将jar文件名放在“可执行”变量中。这样会在开始菜单中使用您的图标创建一个别名。但是,将不会在任务栏中设置Java可执行文件的图标。您可以在项目的Java代码中使用主要JFrame中的以下代码完成此操作:
JFrame appFrame;
appFrame.setIconImage(Toolkit.getDefaultToolkit().getImage(ClassLoader.getSystemResource("TreeView3.png")));

我使用了PNG。从理论上讲,您应该可以使用.ico文件,但是当我尝试使用它时,它将无法正常工作。 (我也尝试使用.icns格式。)

运行msi后,带有图标的'TreeView3'将出现在开始菜单中,当您运行它时,任务栏中的java可执行文件也将带有该图标。

关于java - 如何获取setupBuilder gradle插件以在Windows开始菜单中创建jar启动器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49888269/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com