把java文件导出为jar_idea中将单个java类导出为jar包文件的方法

前言

java/292114.html">idea作为一个java开发的便利IDE工具,个人是比较喜欢的,今天来探索个小功能: 导出单个类文件为jar包!

JAR文件的全称是Java Archive File,意思就是Java档案文件。通常JAR文件是一种压缩文件,与常见的ZIP压缩文件兼容,同城也被称为JAR包。JAR文件与zip文件的去区别就是在JAR文件中默认包含了一个名为META-INF/MANIFEST.MF的清单文件,这个清单文件是在生成JAR文件时系统自动创建的。

当开发了一个应用程序后,这个应用程序包含了很多类,如果需要把这个应用程序提供给别人使用,通常会将这些类文件打包成一个JAR文件,把这个JAR文件提供给别人使用。只要别人在系统的CLASSPATH环境变量中添加这个JAR文件,则Java虚拟机就可以自动在内存中解压这个JAR包,把这个JAR文件当成一个路径,在这个路径中查找所于晓的类或宝层次对应的路径结构。

使用JAR文件有以下好处:

安全。能够对JAR文件进行数字签名,只让能够识别数字签名的用户使用里面的东西。

加快下载速度。在网上使用applet时,如果存在多个文件而不打包,为了能够把每个文件都下载到客户端,需要为每个文件单独建立一个HTTP连接,这是非常耗时的工作。将这些文件压缩成一个JAR包,只要建立一个http连接就能够一次下载所有的文件。

压缩。使文件变小,JAR的压缩机制和zip完全相同

包封装。能够让JAR包里面的文件依赖于统一版本的类文件。

可一致性。JAR包作为内嵌在Java平台内部处理的标准,能够在各种平台上直接使用。

之所以有这种需求,就是某个类文件独立存在,但是需要将其导出为jar,供别人临时使用,或者一些必要的场合,如: 编写一些特殊的agent使用。

不想为某个单个文件写一个项目,就想把代码加载在某个项目的角落里,怎样将该单个类文件导出为jar包呢?

方法如下:

1. 写好功能工具类,如:

public class Hello {

public static void main(String[] args) throws Exception {

Hello hello = new Hello();

hello.sayHello("word. bingo!");

}

public void sayHello(String word) {

System.out.println("hello, " + word);

}

}

2. 点击idea中的 File -> Project Structure... -> Artifacts -> 添加+ -> JAR -> Empty

022cadab73b8aaad6904dba7b206fc0e.png

填写好jar name, 添加好对应的资源文件。先创建好与包名对应的文件目录结构(目录结构不一致可能导致后续使用jar文件时报class not found exception),图解如下:

882d2eb28d26dd288c0604217078319e.png

最后,加载编写出的单个类文件(编译后的 .class 文件,一般在 target 目录下),如下图打开添加file, 找到文件。

a598184bd93058015eab7119861843e6.png

加载后,文件如下,设置好jar文件的输出目录,点击ok关闭对话框:

34493d4d751400a873949b832ccf3256.png

3. 编写清单文件 MANIFEST.MF,如有必要,再将打开 Project Structure...

点击 Create new ManiFest, 选择位置,然后创建一个默认的 MANIFEST.MF。 然后关闭对话框,进入自行编辑。

32014de55643d72d5170290c1cb849bf.png

一些基础参数可以直接在上面填写:

44dcb4bd2fbffce58ae7b1f6279f6739.png

MANIFEST.MF格式如下:

Manifest-Version: 1.0

Premain-Class: com.youge.api.Hello

4. 导出jar文件,先运行 build(将java文件编译到class中,从而例jar文件可更新), 再导出:

c5b9ed27e4eae6b61185987699dae045.png

导出,点击build后完成导出:

ac21b5a6d5da6b47ad9d3a60fa3d30d5.png

如此,到之前设置的目录下,就可以找到导出的jar文件了。

测试运行jar文件:

java -jar hello.jar

cb12e3f7f37dc5b0548cd1e859b506ee.png

这里只是个简单的生成jar的方式,个人觉得还是挺实用的!

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,如果有疑问大家可以留言交流,谢谢大家对ASPKU源码库的支持。

相关推荐

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:1024 设计师:我叫白小胖 返回首页

打赏作者

weixin_39903571

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值