java 学习笔记
来源:互联网 发布:网络硬盘录像机的设置 编辑:程序博客网 时间:2024/06/16 16:01
- 最简单的,源代码—>编译器—>输出—>java 虚拟机(JVM)。
javac Party.javajava Party
- 将源代码和类文件分离,源代码(.java)存储在source目录下,输出(.class)产生在 classes 目录。
cd MyProject/sourcejavac -d ../classes *.javacd MyProject/classesjava MyApp
- 将程序包进 JAR,JAR 就是 JavaARchive,这种文件是个 pkzip 格式的文件,它能把一组类文件包装起来,交付时只需要一个 JAR 文件。可执行的 JAR 代表用户不需把文件抽出来就能运行。程序可以在类文件保存在 JAR 的情况下执行。秘诀在于创建出 manifest 文件,它会带有 JAR 的信息,告诉 Java 虚拟机哪个类含有 main() 这个方法。
cd MyProject/classesjar -cvmf manifest.txt apptest.jar *.classjar -cvmf manifest.txt apptest.jar MyApp.class
其中 manifest.txt 文件放在 classes 目录,内容如下:
Main-Class: MyApp
Java 虚拟机能够从 JAR 中载入类,并调用该类的 main() 方法。事实上,整个应用程序都可以包在 JAR 中。一旦 main() 方法开始执行,Java 虚拟机就不会在乎类是从哪来的,只要能够找到就行。其中一个来源就是 classpath 指定位置的所有 JAR 文件。如果看到某个 JAR,则 Java 虚拟机就会在需要类的时候查询此 JAR。
根据操作系统如何动态设定,有可能直接双击 JAR 就可以开始执行,Windows 与 Mac OS X大致是这样。可以通过点选 JAR 并要求 OS 以“Open with...”这一类的方式来打开。
- 把类包进包中
把类包进包中可以减少与其他类产生命名冲突的机会。Sun 建议包命名加上你所取得的域名称。
首先要在类中加入包指令
package com.headfirstjava;import javax.swing.*;public class PackageExercise { //}
然后设定相应对的目录结构,只是把包命令加入源文件是不够的,类不会真的被加入包中,除非类也在相对应的目录结构中。如果类名称是 com.headfirstjava.PackageExercise ,则你必须把 PackageExercise 源文件放在 headfirstjava 的目录下,此目录又在 com 目录下。
加上 -d (directory) 选项来编译,如编译 com.headfirstjava 这个包的所有 .java 文件。加上 -d 的编译操作会让编译器在遇到 classes 目录结构尚未建立时主动做出来。
cd MyProject/sourcejavac -d ../classes com/headfirstjava/*.java
执行程序,必须指定完整的名称,Java 虚拟机会看得懂并找寻当前目录下的 com 目录,其下应该有 headfirstjava 目录,那里应该能找到 class,class 在其他位置都无法运行。
cd MyProject/classesjava com.headfirstjava.PackageExercise
- 以包创建可执行的 JAR
首先确定所有的类文件都放在 class 目录下正确对应的包结构中,然后创建 mainfest.txt 文件来描述哪个类带有 main(),以及确认有使用完整的类名称。在 mainfest.txt 文件写入下面一行,然后把 mainfest.txt 放在 classes 目录下。
Main-Class: com.headfirstjava.PackageExercise
执行 jar 工具来创建带有目录结构与 mainfest 的 JAR 文件,只要从 com 开始就行,其下整个包的类都会被包进去 JAR。
2、
参考资料:
1. Kathy Sierra / Bert Bates. 《Head First Java》
- Java学习笔记--CSS笔记
- Java学习笔记001
- Java 学习笔记
- java 学习笔记
- Java学习笔记
- java 学习笔记
- java学习笔记
- java学习笔记
- java学习笔记-1
- java虚拟机学习笔记
- java虚拟机学习笔记
- java虚拟机学习笔记
- Java学习笔记1
- Java学习笔记2
- java学习笔记(1)
- java学习笔记#2
- java学习笔记1
- java 学习笔记
- 微信公众帐号开发教程第2篇-开发模式启用及接口配置
- SPSS 分布类型的检验
- 学习ADPLL的一些总结2
- C++学习之路-开篇
- SPSS t 检验
- java 学习笔记
- Maven 学习笔记
- Entity Framework 入门
- 领域驱动设计学习笔记
- 关于多任务和多线程
- 理解多线程管理类 CWorkQueue
- 面试常见问题
- Struts 2 + Hibernate + Spring 整合要点
- 图片模糊效果