Updated 2014/04/09 P581--P615

如何组织、包装与部署Java程序。

部署的选择

本机: Executable Jar

两者之间的结合: Web Start, RMI app

远程

将源代码与类文件分离(javac 的-d选项指定class存放目录)。-d选项会要求编译器将编译结果根据包的结构来建立目录并输出,如果目录还没有建好,编译器会自动处理这些工作。

标准的组织化结构是创建出项目目录,然后在其下建立source和classes目录。

创建可执行的JAR

1.  确定所有的类文件都在classes目录下

2.  创建manifest.txt来描述哪个类带有main()方法 (Main-Class: MyApp)

3.  执行jar工具来创建带有所有类以及manifest的JAR文件

jar –cvmf manifest.txt app1.jar *.class

或jar –cvmf manifest.txt app1.jar MyApp.class

执行JAR

%cd Myproject/classes   //Java虚拟机必须要能找到JAR,所以它必须在classpath下。让JAR

//曝光的最好方式是把它放在工作目录下。

%java –jar app1.jar

1.将类以包来组织,并在前面加上域名称以防止命名冲突。

2.要让编译过的类可以放在正确的包目录结构中,使用-d编译标识:

%cd source

%javac –d ../classes com/wickedlysmart/Foo .

3.切换到classes目录然后指定完整的类名来执行程序:

%java com.wickedlysmart.Foo

4.可以把类包进JAR中,它的格式是根据pkzip制作的。

5.将描述哪个类带有main()的manifest包进JAR中可以制作出可执行的AR文件。manifest文件是个带有像下面这样设定的文本文件,最后要换行才能保证正确:

Main-Classes: com.wickedlysmart.Foo

6.用下面的命令格式来创建JAR文件:

jar –cvfm manifest.txt MyJar.jar com

7.JAR中的结构必须完全的符合包的目录结构

8.以下面的命令格式来执行JAR: java –jar MyJar.jar

Java Web Start

将程序制作成可执行的JAR

编写.jnip文件

把.jnip与JAR文件放到Web服务器

对Web服务器设定新的mime类型

设定网页链接到.jnip文件

对JWS应用程序而言,一旦从网站上面下载后,用户不必通过浏览器就可以离线执行程序

Java远程调用(RMI)技术,Servlet,Enterprise Java Bean(EJB), Jini ,以及EJB与Jini如何运用RMI

一般来说,对象的方法调用都是在相同的Java虚拟机上面进行的。

如果要调用不同机器上的对象的方法呢?

………….(因为Jar后面的东西目前没涉及到,没有继续读下去)

最新文章

  1. js构建ui的统一异常处理方案(三)
  2. RDS MySQL 空间问题的原因和解决
  3. hdu 2255 奔小康赚大钱 最大权匹配KM
  4. ByteBuffer用法小结
  5. 焦点轮播图——myfocus焦点图库
  6. C#基础(二)——C#中的构造函数
  7. [XML] C#XMLProcess操作Xml文档的帮助类 (转载)
  8. 掌握jQuery插件开发,这篇文章就够了
  9. #include <boost/asio.hpp>
  10. Jquery 方法大全
  11. 利用 操作符特性 代替if判断语句
  12. NPOI 2.0 Excel读取显示
  13. 当发现你的OpenStack虚拟机网络有问题,不妨先试一下这16个步骤
  14. centOS7安装nodejs(8.4.0)(详细步骤)
  15. Java多线程10:join()方法
  16. C++标准模板库(STL)之String
  17. Vue 给对象添加属性
  18. web容器 web服务器 servlet/jsp容器 之间的区别和关系
  19. 使用pipeline减少与redis交互次数
  20. 全排列问题(c语言实现)

热门文章

  1. Python中lambda表达式学习
  2. Base Pattern基本模式_Gateway入口
  3. 素数个数统计——Eratosthenes筛法 [LeetCode 204]
  4. 解决Eclipse中Java工程间循环引用而报错的问题
  5. ProgressIndicator显示进度条以及一些文字信息
  6. 【风马一族_Android】造作app的效果图
  7. 《samba服务搭建》RHEL6
  8. “==”,比较的是引用 “equals方法”比较的是具体内容
  9. iOS屏幕尺寸和分辨率
  10. JQ中的html()、text()、val()的用法