idea中如何将单个java类导出为jar包⽂件?
idea作为⼀个java开发的便利IDE⼯具,个⼈是⽐较喜欢的,今天来探索个⼩功能: 导出单个类⽂件为jar包!
英语骂人的话 偶有这种需求,就是某个类⽂件独⽴存在,但是需要将其导出为jar,供别⼈临时使⽤,或者⼀些必要的场合,如: 编写⼀些特殊的agent使⽤。
不想为某个单个⽂件写⼀个项⽬,就想把代码加载在某个项⽬的⾓落⾥,怎样将该单个类⽂件导出为jar包呢?
1. 写好功能⼯具类,如:
uge.api;
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 -> -> Artifacts -> 添加+ -> JAR -> Empty
填写好jar name, 添加好对应的资源⽂件。先创建好与包名对应的⽂件⽬录结构(⽬录结构不⼀致可能导致后续使⽤jar⽂件时报class not found exception),图解如下:
最后,加载编写出的单个类⽂件(编译后的 .class ⽂件),如下图打开添加file, 找到⽂件。
加载后,⽂件如下,设置好jar⽂件的输出⽬录,点击ok关闭对话框:
3. 编写清单⽂件 MANIFEST.MF,如有必要,再将打开
点击 Create new ManiFest, 选择位置,然后创建⼀个默认的 MANIFEST.MF。 然后关闭对话框,进⼊⾃⾏编辑。
日本艺伎妆面
MANIFEST.MF格式如下:
Manifest-Version: 1.0
Main-Class: uge.api.Hello
hesitated
拓展知识:
什么头什么尾成语⽂件定义了与扩展和包相关的数据。单词“manifest”的意思是“显⽰”,其⼀般属性有
1. Manifest-Version ⽤来定义manifest⽂件的版本,例如:Manifest-Version: 1.0
2. Created-By 声明该⽂件的⽣成者,⼀般该属性是由jar命令⾏⼯具⽣成的,例如:Created-By: Apache Ant 1.5.1
设的成语
3. Signature-Version 定义jar⽂件的签名版本
儿童节的习俗
4. Class-Path 应⽤程序或者类装载器使⽤该值来构建内部的类搜索路径
应⽤程序相关属性
1. Main-Class 定义jar⽂件的⼊⼝类,该类必须是⼀个可执⾏的类,⼀旦定义了该属性即可通过 java -jar x.jar来运⾏该jar⽂件。
4. 导出jar⽂件,先运⾏ build(将java⽂件编译到class中,从⽽例jar⽂件可更新), 再导出:
导出,点击build后完成导出:
山随平野尽如此,到之前设置的⽬录下OutPut directory,就可以找到导出的jar⽂件了。
测试运⾏jar⽂件:
java -jar hello.jar
这⾥只是个简单的⽣成jar的⽅式,个⼈觉得还是挺实⽤的!