JAVA的helloworld[转]
来源:互联网 发布:淘宝qq音速最贵戒指 编辑:程序博客网 时间:2024/06/10 09:45
======================================================
注:本文源代码点此下载
======================================================
转自:http://www.blogjava.net/wxb_nudt/archive/2007/01/16/94268.html
一段时间不用java,经常忘记一些烦琐的设置,特意写此文档备案。
-------------
java环境设置
-------------
在环境变量中设置以下三个变量:
java_home=c:\j2sdk1.4.1 //可以改为相应的目录
classpath=%java_home%\lib\tools.jar;%java_home%\lib\dt.jar
path=%java_home%\bin;%path%
然后在命令行输入java -version命令,如果出现
java version "1.4.1"
java(tm) 2 runtime environment, standard edition (build 1.4.1-b21)
java hotspot(tm) client vm (build 1.4.1-b21, mixed mode)
则说明已经配置成功!
helloworld.java源程序如下:
public class helloworld{
public static void main(string[] args) {
system.out.println("hello world!");
}
}
在命令行执行javac helloworld.java
如果没有输出任何信息则说明编译成功。
在命令行运行java helloworld,输出:
hello world!
代表成功执行了java程序。
-----------------
初学者常犯的错误
-----------------
1. 运行时,带了.class后缀
如果你试图使用如下命令:e:\java\src>java helloworld.class
系统会误认为你运行的是helloworld包下的名为class的类文件,会到系统的classpath下(一般都包括当前目录)企图寻找 helloworld.class.class这样的类,这样的类当然不存在了;并且也不可能存在,因为class是关键字,不能作为一个类的名字。所以会报如下错误信息:
exception in thread "main" java.lang.noclassdeffounderror: helloworld/class
2. 文件名大小写错误
对于像windows这样的系统,编译时可以不关心大小写。比如编译helloworld.java时,也可以使用:
e:\java\src>javac helloworld.java
也可以编译通过,但产生的类文件仍然是和源文件相符的:helloworld.class。
但在运行时一定要注意大小写,比如试图使用如下命令运行:
e:\java\src>java helloworld
将报类似于1中的错误:
exception in thread "main" java.lang.noclassdeffounderror: helloworld (wrong name: helloworld)
----------------------------
包含包层次的helloworld.java
----------------------------
比如上面的helloworld.java修改如下:
package org.javaresearch;
public class helloworld{
public static void main(string[] args) {
system.out.println("hello world!");
}
}
编译时有两种方法
1. 直接编译
e:\java\src>javac helloworld.java
此时在当前目录下输出helloworld.class。此时,运行不能使用上面相同的方法,使用:
e:\java\src>java helloworld
运行时,出现如下错误:
exception in thread "main" java.lang.noclassdeffounderror: helloworld (wrong name: org/javaresearch/helloworld)
从上述错误信息你也可以看到,系统可以找到helloworld类(因为当前路径包含在classpath中,具体为什么会提示wrong name,有兴趣的朋友参见java语言规范),但这个类属于org.javaresearch包。所以,你要做的就是按照上述包层次,相应的创建目录层次,把上面生成的helloworld.class放到e:\java\src\org\javaresearch\目录下。运行:
e:\java\src >java org.javaresearch.helloworld
系统打印出:
hello world!
这儿要注意的是,不能使用java org\javaresearch\helloworld来运行,此时同样会出现如下错误:
exception in thread "main" java.lang.noclassdeffounderror:org\javaresearch\helloworld (wrong name: org/javaresearch/helloworld)
2. 使用 -d 编译选项
是不是觉得上面的编译方法有点麻烦,能不能自动在当前路径(或任意指定的路径)下生成包层次呢?有!使用-d 编译选项就能做到。
e:\java\src >javac -d . helloworld.java
此时,在当前目录下就生成了一个org\javaresearch目录,并且输出的.class文件也在里面。运行:
e:\java\src >java org.javaresearch.helloworld
系统打印:hello world!
如果你想把生成的类文件集中存放在一个目录中,比如:e:\java\classes下,那么你首先创建这个目录,然后编译时:
e:\java\src >javac -d e:\java\classes helloworld.java
就可以把生成的类文件放到e:\java\classes目录下,并且按照包层次相应的创建目录路径。你可以在e:\java\classes\org \javaresearch下找到helloworld.class文件。此时使用如下命令可以正确运行(注意如果要用到其它类,请在classpath 中设好):
e:\java\classes >java org.javaresearch.helloworld
或者你可以在e:\java目录下面运行以下命令来执行
e:\java >java -classpath .\classes org.javaresearch.helloworld
使用java的-classpath参数可以将一些目录加入类路径
-------------------
打包jar文件
-------------------
可以把一个包内的所有class文件打包为一个jar文件,便于存放和运行。以上文的org.javaresearch包为例,其打包命令如下:
e:\java\classes >jar cvf wxb.jar org
会生成一个wxb.jar文件,将其中meta-inf\manifest.mf文件中添加如下一行:
main-class: org.javaresearch.helloworld
保存jar文件。
或者首先创建并编辑一个manifest.mf文件,其内容如下:
manifest-version: 1.0
created-by: 1.4.1 (sun microsystems inc.)
main-class: org.javaresearch.helloworld
将其保存到classes目录中
然后将其一起打包到jar文件中,打包命令如下:
e:\java\classes >jar cvfm wxb.jar manifest.mf org
-------------
运行jar文件
-------------
在命令行中输入如下命令即可:
e:\java\classes >java -jar wxb.jar
输出为:
hello world!
-------------
jar,war,ear区别
-------------
这三种文件都可以看作是java的压缩格式,其实质是实现了不同的封装:
jar--封装类
war--封装web站点
ear--封装ejb。
它们的关系具体为:
jar:是java achieve--按java格式压缩的类包,包含内容 class、properties文件,是文件封装的最小单元 级别:小
war:是file web achieve--包含servlet、jsp页面、jsp标记库、jar库文件html/xml文档和其他公用资源文件,如图片、音频文件等 级别:中
ear:是 file enterprise achieve--除了包含jar、war以外,还包括ejb组件部署文件 application-client.xml web.xml application.xml级别:大
完!
======================================================
在最后,我邀请大家参加新浪APP,就是新浪免费送大家的一个空间,支持PHP+MySql,免费二级域名,免费域名绑定 这个是我邀请的地址,您通过这个链接注册即为我的好友,并获赠云豆500个,价值5元哦!短网址是http://t.cn/SXOiLh我创建的小站每天访客已经达到2000+了,每天挂广告赚50+元哦,呵呵,饭钱不愁了,\(^o^)/
- JAVA的helloworld[转]
- JAVA的helloworld[转]
- JAVA的helloworld[转]
- Java的HelloWorld
- Java-我的HelloWorld
- JAVA的helloworld
- Java POI的HelloWorld
- java Activemq的HelloWorld
- java的helloworld(DOS)
- java优雅的输出helloWorld
- java转cocos2d-x:Helloworld
- HelloWorld.java
- Java HelloWorld
- java helloworld
- helloworld.java
- java helloworld
- JAVA ,HelloWorld
- Java HelloWorld
- ASP.NET AJAX 概要
- Web移动应用:HTML5,CSS和JavaScript
- HTML5 API开源利好:appMobi推出XDK(转)
- HTML5边玩边学(2):基础绘图
- java技巧——常用的一些好方法
- JAVA的helloworld[转]
- Ajax初步(小山)
- 基于AJAX的自动完成
- Eric Sun
- WEB UI篇——还HTML标签以本来意义
- Delphi的对象注销方法Destroy和free的区别
- Ajax--让网站与时俱进
- Delphi制作安装程序
- 给Delphi程序(exe,dll)添加版本信息