我正在尝试从
Android工作室运行一个jar.经过长时间的解决方法后,jar文件运行完美.
现在我需要从android工作室导出jar文件.我从build / libs文件夹中获取了Jar文件.
但问题是jar文件显示错误.
no main manifest attribute, in “app.jar”
然后我读了关于MANIFEST.MF&将邮件类添加到该文件.
jar {
manifest.attributes(
'Main-Class': "com.Remo.server.RemoServerApp"
)
}
在我的gradle中添加它们之后.我的MANIFEST.MF包含MainClass.
但是我仍然得到同样的错误?我怎么解决这个问题?
注意:目标是我想从项目中导出Runnable Jar文件.
更新:
在MANIFEST.MF中添加MainClass之后.我遇到了以下错误.
Exception in thread "main" java.lang.NoClassDefFoundError: com/Remo/protocol/RemoConnection
at com.Remo.server.RemoServerApp.(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
清单 – 版本:1.0
Main-Class:com.Remo.server.RemoServerApp
更新2
从您的解决方案我明白我们需要将remoprotocol jar文件复制到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任务后,我也遇到了同样的错误.