Я знаю, что этот вопрос задавался миллион раз, но я не могу найти способ его решить.
Проблема в том, что когда я запускаю свой файл JAR java -jar MYFATJAR.jar
, используя:
openjdk version "1.8.0_191-1-ojdkbuild"
OpenJDK Runtime Environment (build 1.8.0_191-1-ojdkbuild-b12)
OpenJDK 64-Bit Server VM (build 25.191-b12, mixed mode)
Я получаю следующую ошибку:
Error: Could not find or load main class PACKAGE_PATH.MAINCLASSNAME
Но когда я запускаю ту же команду с:
java version "1.8.0_212"
Java(TM) SE Runtime Environment (build 1.8.0_212-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.212-b10, mixed mode)
банка работает нормально.
Я компилирую JAR, используя Gradle. Вот сокращенный файл build.grade
:
// build.gradle
plugins {
id 'java'
id 'application'
}
jar {
manifest {
attributes (
"Main-Class": "org.me.logreader.App",
"Specification-Title": "Log Reader",
"Specification-Vendor" : "ME",
"Implementation-Title" : "Log Reader",
"Implementation-Vendor" : "ME"
)
}
archiveName = "LogReader.jar"
from {
configurations.compile.collect {it.isDirectory() ? it : zipTree(it)}
}
}
...
Если я открываю JAR с WinRAR, я вижу, что он отображается так:

Структура проекта следующая:
src
-main
-java
-org.me.logreader
-controllers
-model
-parsers
-version
-views
-workers
App.java
UPDATE
Содержимое файла MANIFEST.MF
:
Manifest-Version: 1.0
Implementation-Title: Log Reader
Specification-Vendor: ME
Specification-Title: Log Reader
Main-Class: org.kobbigal.logreader.App
Implementation-Vendor: ME