我创建了工件,并在启动程序时收到错误 Class com.abstudio.fakture.MainActivity not found。当我通过 IDE 运行程序时,它一切正常。
IDE:Intelij IDEA JavaFX Java 8
清单文件:
Manifest-Version: 1.0
Main-Class: com.abstudio.fakture.MainActivity
MainActivity 在路径中:src/main/java/com/abstudio/fakture/MainActivity
在 cmd 中运行命令“jar tf ePDV.jar”时,我看到 com/abstudio/fakture/MainActivity 路径是用其他类、接口等编译的。
我的 build.gradle 文件:
plugins {
id 'java'
id 'application'
id 'idea'
}
sourceCompatibility = JavaVersion.VERSION_1_8
group 'org.example'
version '1.0-SNAPSHOT'
repositories {
mavenCentral()
}
compileJava.options.encoding = 'UTF-8'
tasks.withType(JavaCompile) {
options.encoding = 'UTF-8'
}
jar {
manifest {
attributes(
'Main-Class': 'com.abstudio.fakture.MainActivity'
)
}
}
sourceSets.main {
java {
srcDir 'src/main/java' //assume that your source codes are inside this path
}
resources {
srcDirs = ['src/main/java', 'src/main/resources']
exclude "**/*.java"
}
}
dependencies {
testImplementation group: 'junit', name: 'junit', version: '4.12'
implementation 'com.jfoenix:jfoenix:8.0.10'
implementation group: 'de.jensd', name: 'fontawesomefx', version: '8.1'
// https://mvnrepository.com/artifact/mysql/mysql-connector-java
implementation group: 'mysql', name: 'mysql-connector-java', version: '8.0.22'
// https://mvnrepository.com/artifact/com.itextpdf/itextpdf
implementation group: 'com.itextpdf', name: 'itextpdf', version: '5.5.13.2'
implementation group: 'org.apache.derby', name: 'derby', version: '10.14.1.0'
// https://mvnrepository.com/artifact/org.controlsfx/controlsfx
implementation group: 'org.controlsfx', name: 'controlsfx', version: '8.40.18'
implementation 'org.apache.commons:commons-configuration2:2.7'
implementation 'commons-io:commons-io:2.11.0'
implementation 'commons-net:commons-net:3.8.0'
}
mainClassName = 'com.abstudio.fakture.MainActivity'
在项目结构中应用程序类是 com.abstudio.fakture.MainActivity
如何解决这个问题呢?谢谢