2.Java 程序与结构
来源:互联网 发布:进销存带人力资源软件 编辑:程序博客网 时间:2024/05/15 23:53
2. Java 程序与结构
标签: java
2.1 Heloword
该运行你的第一个Java程序了
–建立以下内容的文本文件:
public class Test {
public static void main(String[] args) {
System.out.println(“Hello world!”);
}
}
–将以上内容保存为Test.java文件,注意大小写!
–运行javac Test.java
–查看一下当前目录下,是否有一个Test.class文件?如果是这样,说明编译成功了,否则的话,检查输入的内容,包括拼写错误,尤其是大小写!
–运行java –cp . Test #java Test
–是否输出“Hello world!”了?
Eclipse建立项目文件,项目中的/bin目录就是Eclipse自动帮助我们编译(其实是调用Java安装的bin目录中的“javac”来进行编译的)的Java字节码。然后java直接执行字节码。
2.2 Java 程序结构
首先,每个.java文件中,可以包含多个类,就是有class修饰的部分,但是每个class后面的名称必须都不相同
其次,每个.java文件中,只能有一个类的class前面允许有public修饰字
通常,我们只会在一个.java文件中定义一个public的class
每个.java文件的名称必须和其中的public的类的名称完全一致,包括大小写
假设你的java源文件是从src的目录开始的,那么刚才创建的Test.java就必须放在src目录下
Java源文件包含package信息,例如com.dataguru.data,等等,来区别不同的使用目的等,这些源文件要放在相应的目录下,如Person.java使用了package com.dataguru.data,那么Person.java应该放在src/com/dataguru/data目录下
Javac生成的.class文件也会遵循类似的目录结构和命名方式,所以这一点一定要注意
2.3 Java程序打包
前面说了Java程序的结构,这么多源代码文件,编译之后会生成更多的.class文件,不好管理怎么办?
–jar工具就是用来给我们的程序打包的,打包之后会生成一个.jar文件,这个文件跟zip文件的结构是一样的,你可以用7zip或者WinRAR之类的工具打开,这样就方便管理了
现在来试一下给我们自己刚才生成的Test.class文件打包
–Package——命名空间,或称名字空间,防止冲突–Import——依赖项–类•类的声明•类的属性•类的行为
jar –cfv test.jar Test.class
–会有类似的输出:
•已添加清单
•正在添加: Test.class(输入 = 414) (输出 = 287)(压缩了 30%)
–如果有很多文件打包的话,你能够把这些文件都打包到一个jar文件中,而且jar文件的体积比原来这些文件的要小
–现在删除Test.class文件,尝试一下运行刚才的”java –cp . Test.class”
–会出现这个错误:错误: 找不到或无法加载主类 Test.class
2.4 Java的CLASSPATH
出现上面的错误,并非是因为我们在编译打包的过程中犯了什么错误
–Java程序无论是从jar包加载还是从.class文件加载,都有一个classpath的概念
–Classpath类似于我们的PATH,在加载一个可执行文件的时候,操作系统依赖于PATH去PATH里面所有的路径查找可执行文件,并尝试加载,如果PATH中所有的路径都不包含用户指定的可执行文件,那么操作系统会报错,无法完成任务。
–同样的,java程序在尝试加载java的类的时候通过CLASSPATH,也就是java –cp中“-cp”后面的路径所指定的地方去查找这些类。
–与PATH不同的,是PATH只能包含目录,而CLASSPATH除了目录之外,还可以包含jar包
现在尝试“java –cp test.jar Test”,现在是否成功了?
记住Java程序中很容易犯的第一个错误:java.lang.NoClassDefFoundError
–初学者经常会遇到这个错误,而遇到这个错误,99.9%的情况,是因为你在CLASSPATH中忘掉了需要的jar包
–所以,遇到这个错误,回头去找齐你所有的jar包,然后再到java社区去问问题
- 2.Java 程序与结构
- JAVA基础-程序的基本结构、函数与数组
- JAVA程序内存结构
- Java程序的结构
- JAVA程序内存结构
- JAVA程序的结构
- 【Java】程序基本结构
- JAVA基本结构程序
- Linux程序存储结构与进程结构
- linux 程序存储结构与进程结构
- JAVA程序的基本结构
- Java程序中的选择结构
- 【初学java】关于java程序的结构
- Java循环结构与判断结构
- Java选择结构与循环结构
- openwrt的结构 与 编写 HelloWorld程序
- openwrt的结构与编写 HelloWorld程序
- openwrt的结构 与 编写 HelloWorld程序
- 杂记
- iTOP 4412安装嵌入式linux编译环境
- 分治策略
- Wordpress删除Redis页面缓存的方法
- nyist_1011 So Easy[II]
- 2.Java 程序与结构
- 使用libusb库笔记
- ActionBar 和抽屉 的应用
- Vector Multiplication with Map-Reduce
- dispatch_after的使用及iOS延时实现方法
- JavaScript实现的9大排序算法
- Ubuntu server 14.04 虚拟机的安装过程
- TimesTen 数据库复制学习:11. ASP带缓存组复制的几种固定架构模式
- spring tx:advice 和 aop:config 配置事务