工作一年多了,却从未手工打过jar包,从未手动写过一个java项目,当然用IDE工具这一切都是很简单的事,可是如果让你用记事本,用命令能完成这一过程么?当然用eclipse点点鼠标就OK了,何必那么麻烦呢。当然实际操作中肯定是用IDE工具来提高工作效率,但是对于其本质不了解,那只能是知其然而不知其所以然,也就只能知道了其本质,这样我们坐起事来才游刃有余。
接下来将详细的介绍这一个过程,本文将分两篇,一篇讲J2SE项目,一篇讲J2EE项目。
本篇将介绍如何完成第三方jar包和一个在window中的可执行程序:
做第三方jar包
1.首先将一个文件夹命名为mytest,在目录下建三个子文件夹分别为src(存放java源文件),bin(存放编译后的class文件)和lib(存放第三方jar包)。然后在src目录下建立cn/jun/info,和cn/jun/test包文件夹,其目录结构如下:
----mytest
----src
----cn
----jun
----info
----test
----bin
----lib
2.分别在info和test2下建立Info.java和Test.java文件,用记事本编辑内容分别如下
Test类
package cn.jun.test;
import cn.jun.info.Info;
public class Test{
public String test(String a){
System.out.println("执行依赖jar包的方法");
return a+"****************"+Info.info1;
}
}
Info类
package cn.jun.info;
public class Info
{
public static String info1="测试信息1…………";
public static String info2="测试信息2…………";
}
3.编译java文件
在dos窗口下 执行命令切换到 mytest目录下输入命令 javac -d bin src/cn/jun/info/*.java src/cn/jun/info/test/*.java (这句话的意思是将cn/jun/info和cn/jun/info/包下的所有.java文件编译到bin目录下)
编译成功后目录bin目录下会增加class文件,文件目录如下:
----mytest
----src
----cn
----jun
----info
----Info.java
----test
----Test.java
----bin
----cn
----jun
----info
----Info.class
----test
----Test.class
----lib
4.打成jar包,完成第三方jar包的制作
bin目录下就生成了mytest.jar包
5.关于第三方jar包的引用
按照如上步骤我们重新做一个mytest2的jar包,里面仅有Test2这个类,目录结构及内容如下:
注:编译时用 javac -d bin src/cn/jun/info/test2/*.java 命令时会报软件包不存在,因为你没有引入第三方包,正确命令是 :javac -d bin -classpath lib/mytest.jar src/cn/jun/info/test2/*.java
----mytest2
----src
----cn
----jun
----test2
----test2.java
----bin
----cn
----jun
----test2
----test2.class
----lib
----mytest.jar
Test2类
package cn.jun.test2;
import cn.jun.info.Info;
import cn.jun.test.Test;
public class Test2{
public String testjar(String a){
Test t=new Test();
System.out.println(a);
System.out.println("执行第三方jar包的方法!");
return a+"****************"+t.test("调用依赖包……");
}
}
然后同样在 bin目录下然后执行命令 : jar vcfM mytest2.jar cn
做可执行jar包
1.依照前面的步骤完成如下目录结构
----mytestmain
----src
----cn
----jun
----testmain
----testmain.java
----bin
----cn
----jun
----test2
----test2.class
----lib
----mytest.jar
----mytest2.jar
----MANIFEST.MF
Testmain类
package cn.jun.testmain;
import cn.jun.test2.Test2;
public class Testmain{
public static void main(String args[]){
System.out.println("测试打jar包,形成可执行文件!");
Test2 mt=new Test2();
System.out.println(mt.testjar("调用第三方jar包……"));
try {
Thread.sleep(5000);//当双击执行时,让其停留一会,这样可以看到打印结果,否则闪一下就过了
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
2.编译并打包
同样用命令javac -d bin -classpath lib/mytest2.jar src/cn/jun/info/testmain/*.java 编译
打jar包的时候就有区别了,首先我们要写一个MANIFEST.MF,内容如下:
Manifest-Version: 1.0
Created-By: 1.6.0_22 (Sun Microsystems Inc.)
Main-Class: cn.jun.testmain.Testmain
Class-Path: lib/mytest.jar lib/mytest2.jar
注: Main-Class: cn.jun.testmain.Testmain 是说明程序的入口,cn.jun.testmain.Testmain是注程序的路径
Class-Path: lib/mytest.jar lib/mytest2.jar 是说明了程序要引用的jar包,中间用空格隔开,这个路径是相对与jar包所在的目录下
在bin目录下用jar命令打包:jar vcfm mian.jar ../MANIFEST.MF cn (注:这里的MANIFEST.MF在mytestmian目录下,所以用../MANIFEST.MF ,只要路径对了就行 )
3.完成可执行程序
如果用命令 java -jar mian.jar的话一定会报错:找不到Test2这个类,因为它没有找到mytest.jar和mytest.jar俩个包
那怎么包了,既然他是一个程序了那我们新建一个文件夹main,将mian.jar放到该目录下,在main下新建一个目录lib并将mytest.jar和mytest.jar复制到下面(这里就表明了jar包的路径Class-Path: lib/mytest.jar lib/mytest2.jar )
再用命令执行java -jar mian.jar就可以正确执行了
制作为bat文件,让其双击就可以执行
在main目录下建一个mytest.bat文件,用记事本编辑类容如下:
java -jar mytest.jar
完成了,这样双击就mytest.bat文件就可以之际执行程序了
这样一个可执行的程序就完成了,main文件夹复制到任何装有有java环境的机子上都可以执行了
当然你还可以将其制作成exe文件,并对图标进行一些美化请参加(见附件中的“制作exe文件.txt"的七八九步)
分享到:
相关推荐
java课程设计大作业——用J2SE写的一个坦克大战小游戏java课程设计大作业——用J2SE写的一个坦克大战小游戏java课程设计大作业——用J2SE写的一个坦克大战小游戏java课程设计大作业——用J2SE写的一个坦克大战小游戏...
J2SE(Java 2 Standard Edition)是Java平台的核心部分,为桌面应用提供了基础框架和运行环境。本套“Java入门教程课件”针对初学者,旨在帮助他们理解和掌握Java编程的基本概念和技术。 1. **Java入门**: - **...
在这个名为"工厂模式的小例子——j2SE"的项目中,开发者已经实现了一个基于Java 2 Standard Edition (J2SE) 的抽象工厂模式示例。 抽象工厂模式的核心在于定义一个创建对象的接口,但允许子类决定实例化哪一个类。...
JAVA开发环境J2SE实验报告 在本实验中,我们将学习和掌握JAVA开发环境J2SE的基本概念和使用方法。具体来说,我们将学习如何下载和安装J2SE开发工具,熟悉J2SE开发工具的使用,编写简单的Java Application和Java ...
JAVA参考大全.J2SE.5EDITION
JAVA参考大全.J2SE.5EDITION 高清共两卷 01
《JAVA参考大全.J2SE》是一本全面深入探讨Java Standard Edition (J2SE) 技术的权威指南。这本书涵盖了Java编程语言的核心概念、API以及开发工具,旨在帮助程序员掌握Java平台的基础和高级特性。J2SE是Java平台的...
总结来说,"Java五子棋联网版J2SE"项目涵盖了Java基础、GUI编程、网络编程、多线程处理和游戏逻辑设计等多个核心领域,对于想要提升Java技能和了解完整项目开发流程的程序员来说,是一个非常有价值的学习资源。...
这个项目是针对J2SE平台设计的,主要运用了Java的面向对象编程、网络编程、输入输出流(I/O流)、数据结构和多线程技术。 在需求分析阶段,设计者曾昊明确了系统必须具备的基本功能,如用户能够进行身份的注册与登录...
"java培训课件(j2se+j2ee)"标题表明这是一份涵盖了Java标准版(J2SE)和企业版(J2EE)的教程资料。J2SE是Java的核心部分,提供了构建桌面应用和网络服务的基础;而J2EE则是为了开发和部署分布式企业级应用而设计...
Java是世界上最流行的编程语言之一,尤其在企业级应用开发领域占据主导地位。这份"很全的Java面试题。J2SE+J2EE+JAVAWEB"的压缩包文件,显然包含了Java开发者在面试中可能遇到的各种问题,涵盖了基础到高级的多个...
总的来说,这个J2SE阶段的项目案例是一个很好的教学工具,它通过实际编程任务让学生熟悉Java的基本程序结构,深入理解类和对象的概念,以及如何运用封装、继承和多态等面向对象的核心特性。通过这个项目,学员将能够...
java学习总结1 -- j2se 项目环境: jdk8 字符集:UTF-8 开发工具:Eclipse 包括内容: basic 基本语法 oop 面向对象 api 常用api及工具类 javadoc javaDoc的使用 debug 代码调试方法 datastructure 基本数据结构 ...
总结来说,Java/Swing/J2SE 酒店管理系统是一个综合运用了GUI设计、数据管理、业务逻辑、异常处理等多个方面技术的项目,通过精心设计和编码,可以实现一套高效、稳定、易于使用的酒店管理工具。开发者不仅需要掌握...
### Java的起源与发展 #### 1. Java的背景与重要性 Java作为一种现代编程语言,其发展历程和背景具有重要意义。...对于初学者来说,《J2SE5参考大全》是一个很好的起点,可以帮助他们深入了解Java的核心概念和技术。
《JAVA参考大全.J2SE.5EDITION》是2006年1月出版的一本针对Java编程语言的详尽指南,特别关注J2SE(Java 2 Platform, Standard Edition)第五版的内容。这本书以其全面性和深度而备受赞誉,是Java开发者的重要参考...
Java Web ppt 开发和J2SE学习...通过深入学习这些知识点,开发者可以构建功能丰富的Java Web应用程序,并掌握J2SE的基本技能,为更复杂的项目打下坚实的基础。不断实践和探索新技术,是提升Java Web开发能力的关键。
Java基础学习教程J2SE讲义ppt JAVA概述 JAVA语言基础 面向对象编程 JAVA异常处理机制 数组 JAVA常用类 JAVA容器类 JAVA流技术 JAVA多线程机制 JAVA网络编程 GUI编程