Я пытаюсь запустить банку из студии Android. После долгого обходного пути файл jar работает отлично.Экспорт файла Jar с атрибутом Manifest в Android Studio?
Теперь мне нужно экспортировать файл jar из студии Android. Я получил файл Jar из папки build/libs.
Но проблема в том, что файл jar показывает ошибку.
не главный атрибут манифеста, в "app.jar"
Так я нашел это решение. Can't execute jar- file: "no main manifest attribute"
Затем я прочитал о MANIFEST.MF & добавлен класс почты в этот файл.
jar {
manifest.attributes(
'Main-Class': "com.Remo.server.RemoServerApp"
)
}
После добавления в мою град. Мой MANIFEST.MF содержит MainClass.
Но я все еще получаю ту же ошибку? Как я могу это решить?
Примечание: Целью является то, что я хочу экспортировать файл Runnable Jar из проекта.
ОБНОВЛЕНИЕ:
После добавления MainClass в MANIFEST.MF. Я застрял с ошибкой ниже.
Exception in thread "main" java.lang.NoClassDefFoundError: com/Remo/protocol/RemoConnection
at com.Remo.server.RemoServerApp.<init>(RemoServerApp.java:33)
at com.Remo.server.RemoServerApp.main(RemoServerApp.java:97)
Caused by: java.lang.ClassNotFoundException: com.Remo.protocol.RemoConnection
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 2 more
MANIFEST.MF
Manifest-Version: 1,0
Main-Class: com.Remo.server.RemoServerApp
UPDATE 2
От вашего решения, что я понял, что нам нужно скопировать файл jar remoprotocol на remoserver.
remoserver проект Gradle файл
apply plugin: 'java'
sourceSets {
main {
resources.srcDirs = ['src/main/resources']
}
}
dependencies {
compile project(':remoprotocol')
compile files('libs/bluecove-2.1.1.jar')
}
jar {
manifest.attributes(
'Main-Class': "com.remo.server.remoServerApp"
)
manifest.attributes(
'Class-Path': configurations.runtime.files.collect { it.getName() }.join(' '))
}
task copyRTDependenciesToLib(type: Copy) {
into "$buildDir/output/lib"
from configurations.runtime
}
После запуска Gradle задачи также я получаю ту же ошибку.
Звуки, как вам нужно добавьте путь к классу и ваш манифест. Можете ли вы опубликовать свой полный манифест.mf? – RaGe
- это класс 'com/Remo/protocol/RemoConnection', содержащийся в этой банке? или есть ли какие-либо внешние банки с зависимостями? – RaGe
@RaGe Я ссылался на модуль протокола в файле build.gradle как на зависимость. Но они не содержатся в моем файле jar. Как я могу добавить их? – user3467240