工作需要研究了下jar,这里就举个简单的例子,以helloworld为例吧

1.启动eclipse编写代码:

次步不做赘述

package cn.test.jar;

public class HelloWorld {

	public static void main(String[] args) {
System.out.println("this is HelloWorld.main()"); if (args.length > 0) { //传参时使用
for (String str : args) {
System.out.println("the parameter of you send is --->" + str);
}
}
}
}

2.编译,拷贝编译出来的文件和支持库

这里如果使用读写之类的Java类需要把JRE的几个文件全部打包下,不然不能正常运行的。

(ps:jar的几个包分别是:resources.jar、rt.jar、jsse.jar、jce.jar、charsets.jar、dnsns.jar、localedata.jar、sunjce_provider.jar、sunmscapi.jar、sunpkcs11.jar)

3.执行打包命令:

此处是我把我编写出来的代码,和类库打包成一个hello.jar的库

jar cvf hello.jar cn/* lib/*

此时桌面会生成一个jar包

4.修改配置信息

我们可以压缩包的方式打开jar会发现,霍,多了一个文件夹,这个正是我们需要修改的文件,直接拖拽出来,编辑,然后再塞进去更新包,即可达到修改配置信息的目的;具体步骤看下:

*粉色部分是我们要修改的配置文件的路径

打开文件拖出来的MANIFEST.MF文件,编辑打开,发现里面内容如下:

Manifest-Version: 1.0
Created-By: 1.6.0_38 (Sun Microsystems Inc.)

霍,版本信息,第一行是版本1.0,而二个是由谁创建

我们现在是设置个主类,也就是我们的main函数的哪个类,在设置个支持的jar包路径即可,修改后如下:

Manifest-Version: 1.0
Created-By: 1.6.0_38 (Sun Microsystems Inc.)
Main-Class: cn.test.jar.HelloWorld
Class-Path: charsets.jar dnsns.jar jce.jar jsse.jar localedata.jar resources.jar rt.jar sunjce_provider.jar sunmscapi.jar sunpkcs11.jar

修改完毕,替换回去

更新包:

jar umf MANIFEST.MF hello.jar

5.运行测试:

两种方式,一个是可以直接命令行来运行,另一个是新建个可执行脚本语言来执行。【windows是bat脚本,而linux则是sh脚本】

此处我们就命令行来测试吧。因为我之前main方法中写了接受多参数的方法,我这里也一并测试下,效果如下:

C:\Users\sanbo\Desktop>java -jar hello.jar
this is HelloWorld.main() C:\Users\sanbo\Desktop>java -jar hello.jar "hello"
this is HelloWorld.main()
the parameter of you send is --->hello C:\Users\sanbo\Desktop>java -jar hello.jar "hello" "sanbo"
this is HelloWorld.main()
the parameter of you send is --->hello
the parameter of you send is --->sanbo C:\Users\sanbo\Desktop>java -jar hello.jar "hello" "sanbo" ""
this is HelloWorld.main()
the parameter of you send is --->hello
the parameter of you send is --->sanbo
the parameter of you send is --->

ps:如果你代码未进行编译运行过,会出现如下错误,一定注意!

C:\Users\sanbo\Desktop>java -jar hello.jar

//结果呢,结果呢?where is my result~ ^_~

晚安,最近想换工作,祈福。

更多的相信信息,可以看文档:

http://docs.oracle.com/javase/1.3/docs/guide/jar/jar.html

Java__jar包的简单操作的更多相关文章

  1. Charles抓包工具简单操作

    一.界面介绍 1.功能是clear,清理掉所有请求显示信息. 2.功能是搜索关键字,也可以使用ctrl+f实现,可以设置搜索的范围 3.功能是开始或暂停 4.显示所抓取的数据包 5.抓取数据包的请求及 ...

  2. ZooKeeper系列3:ZooKeeper命令、命令行工具及简单操作

    问题导读1.ZooKeeper包含哪些常用命令?2.通过什么命令可以列出服务器 watch 的详细信息?3.ZooKeeper包含哪些操作?4.ZooKeeper如何创建zookeeper? 常用命令 ...

  3. Java网络编程:利用apache的HttpClient包进行http操作

    本文介绍如何利用apache的HttpClient包进行http操作,包括get操作和post操作. 一.下面的代码是对HttpClient包的封装,以便于更好的编写应用代码. import java ...

  4. Spring_boot简单操作数据库

    Spring_boot搭配Spring Data JPA简单操作数据库 spring boot 配置文件可以使用yml文件,默认spring boot 会加载resources目录的下的applica ...

  5. MySQL基本概念以及简单操作

    一.MySQL   MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目前属于Oracle 旗下产品.MySQL 是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MyS ...

  6. HDFS介绍及简单操作

    目录 1.HDFS是什么? 2.HDFS设计基础与目标 3.HDFS体系结构 3.1 NameNode(NN)3.2 DataNode(DN)3.3 SecondaryNameNode(SNN)3.4 ...

  7. ubuntu16.04下Hyperledger之搭建Fabric环境简单操作(五步启动e2e_cli)

    如果你已经安装好go等工具.git及checkout相关代及下载相关镜像,您只需下面5步就能up e2e_cli~/go/src/github.com/hyperledger/fabric$ sudo ...

  8. zk 06之:ZooKeeper命令、命令行工具及简单操作

    常用命令ZooKeeper 支持某些特定的四字命令字母与其的交互.它们大多是查询命令,用来获取 ZooKeeper 服务的当前状态及相关信息.用户在客户端可以通过 telnet 或 nc 向 ZooK ...

  9. spark sql的简单操作

    测试数据 sparkStu.text zhangxs chenxy wangYr teacher wangx teacher sparksql { ,"job":"che ...

随机推荐

  1. LightOJ 1033 Generating Palindromes(dp)

    LightOJ 1033  Generating Palindromes(dp) 题目链接:http://acm.hust.edu.cn/vjudge/contest/view.action?cid= ...

  2. [Swust OJ 767]--将军回家(Dijkstra算法)

    题目链接:http://acm.swust.edu.cn/problem/767/ Time limit(ms): 1000 Memory limit(kb): 65535   Description ...

  3. BZOJ 1863: [Zjoi2006]trouble 皇帝的烦恼( 二分答案 )

    二分答案..然后从头到尾推一下, 看最后一个能不能取0个和第一个人相同的勋章 ------------------------------------------------------------- ...

  4. 远程读取URL 建议用curl代替file_get_contents

    初学php的朋友们,很容易翻一个错误,在写采集程序或者调用api接口总会有线考虑到使用file_get_contents函数来或许内容,程序的访问量不大倒是没什么影响,但是访问量提升了那非常的悲剧了, ...

  5. 17.2?Replication Implementation 复制实施:

    17.2?Replication Implementation 复制实施: 17.2.1 Replication Implementation Details 17.2.2 Replication R ...

  6. 基于visual Studio2013解决C语言竞赛题之0304整除数

      题目 解决代码及点评 按照题目要求,判断数值对3和5取模的结果,是否为0 #include <stdio.h> #include <stdlib.h> void m ...

  7. BZOJ 1622: [Usaco2008 Open]Word Power 名字的能量

    题目 1622: [Usaco2008 Open]Word Power 名字的能量 Time Limit: 5 Sec  Memory Limit: 64 MB Submit: 349  Solved ...

  8. poj 3281 Dining 网络流-最大流-建图的题

    题意很简单:JOHN是一个农场主养了一些奶牛,神奇的是这些个奶牛有不同的品味,只喜欢吃某些食物,喝某些饮料,傻傻的John做了很多食物和饮料,但她不知道可以最多喂饱多少牛,(喂饱当然是有吃有喝才会饱) ...

  9. android 项目中log信息的正确处理

    我们在做项目中,调试程序的时候通常是debug或者打log,特别是看一些json数据之类的,都喜欢打log看看,可是在项目上线时log信息一定不能被打印出来,大家能够平时下载一些做的烂的app,连接e ...

  10. 使用SharedPreferences即时存储之后,不能即时获取到数据

    在这里简介一下我所遇到的情况,由于情况非常特殊,所以我就来记录一下自己在这个方面的经历! 事由:在我所做的app中有一个视频的播放功能,因为之前做优化的时候.我听说对于视频这种比較耗费资源的应该给他独 ...