美文网首页
android studio 打jar包的方式

android studio 打jar包的方式

作者: fyg | 来源:发表于2021-09-18 09:50 被阅读0次

java -jar运行报 “XXX中没有主清单属性”

手动增加主类时 注意:Main-Class: 后有一个空格
Main-Class: org.springframework.boot.loader.JarLauncher

使用Jdk自带的jar.exe打包指定主类的可执行jar



提示没有主清单属性, 其实就是在 MainClass.jar 包中META-INF文件夹内MANIFEST.MF中缺少内容. 当前内容如下:
时我们只需要在后面添加以下内容 (com.xxx.MainClass 为启动类, 含有main方法)



对命令 jar -cvfe MainClass1.jar com.xxx.MainClass com/ 做一个小小的解释:

-c  打包

-v 输出详细信息(可有可无)

-f 指定文件名字

-e 指定入口类

MainClass1.jar 打包生成的文件名

com.xxx.MainClass 就是要写入到MANIFEST.MF文件中的 Main-class: 后面的类名

com/ 被打包的目录


当然, 这种情况是很少遇到的 ! 作为一个Java程序员, 电脑里没有个IDEA, 没有个eclipse, 没有个Maven 怎么可能? 所以最简单的方式还是通过工具来生成, 还不容易出错! 网上有很多博客写关于使用Maven打包, 写的都很好,一看激动! 



jar -cvfe test.jar com.jiuxian.channel.ChannelUtil ./



android class 文件生成的位置


/jiuxian_studio/updateutil/build/intermediates/javac/release/compileReleaseJavaWithJavac/classes

用gradle打jar包的方式

//task to delete the old jar
task deleteOldJar(type: Delete) {
    delete 'release/AndroidPlugin.jar'
}

//task to export contents as jar
task exportJar(type: Copy) {
    from('build/intermediates/bundles/release/')
//    from('build/intermediates/javac/release/')
    into('release/')
    include('classes.jar')
    ///Rename the jar
    rename('classes.jar', 'AndroidPlugin.jar')
}

exportJar.dependsOn(deleteOldJar, build)

打jar包

我项目工程中用的是android library的方式, 用这种方式,本人试的不行,但会在build/outputs/arr目录下生成 arr的包,
/build/intermediates/javac 目录下也会生成 相应的 *.class 文件, 然后通过 java 的

 jar -cvfe test.jar com.jiuxian.channel.ChannelUtil ./     方式打出的jar 

点击 android studio 菜单栏的 【build】-> 【make Module xxx】也会在对应的子Module下生成 arr

AndroidStudio将library打包成jar包遇到的问题

Android将library打包成jar包和aar包

相关文章

网友评论

      本文标题:android studio 打jar包的方式

      本文链接:https://www.haomeiwen.com/subject/wtekgltx.html