现在的位置: 首页 > 综合 > 正文

java helloworld

2019年03月15日 ⁄ 综合 ⁄ 共 3731字 ⁄ 字号 评论关闭

秒速赛车公式 www.l19l7.cn

转自://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 <directory>编译选项

是不是觉得上面的编译方法有点麻烦,能不能自动在当前路径(或任意指定的路径)下生成包层次呢?有!使用-d <directory>编译选项就能做到。

E:\java\src >javac -d . HelloWorld.java

此时,在当前目录下就生成了一个org\javaresearch目录,并且输出的.class文件也在里面。运行:

E:\java\src >java org.javaresearch.HelloWorld

系统打?。篐ello 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??? 级别:大

?

完!

【上篇】
【下篇】

抱歉!评论已关闭.

  • 一以贯之推进党的建设新的伟大工程 2019-03-19
  • 回复@真理论者:你天天在强坛攻击爱因斯坦是不是劳动?创造价值么?负价值也! 2019-03-19
  • 北京天安门广场更换花卉 2019-03-18
  • 党的自我革命是伟大社会革命的强大动力(深入学习贯彻习近平新时代中国特色社会主义思想) 2019-03-18
  • 人民日报人民时评:让安全生产理念成为基本共识 2019-03-18
  • “人民体育 健康中国”马拉松系列赛北京站 2019-03-17
  • 识破“假大学”并没那么难 2019-03-17
  • 佛山:用公积金买装配式住房 贷款额度或可上浮20% ——凤凰网房产北京 2019-03-17
  • 奥运冠军寄语Running Together国际迷你马拉松—在线播放—《奥运冠军寄语Running Together国际迷你马拉松》—体育—优酷网,视频高清在线观看 2019-03-17
  • 【理上网来喜迎十九大】西班牙学者:大国外交令中国成为建立世界新秩序的中流砥柱 2019-03-16
  • 马上背!十九大报告中的四个“新” 2019-03-16
  • 呼市赛罕区南门外小学开展庆父亲节亲子趣味足球赛 2019-03-16
  • 2017大皖客户端徽派栏目全面回顾宣传片 2019-03-15
  • 回复@海之宁:你想自主劳动?全民所有的生产资料凭啥让你自主? 2019-03-15
  • 重庆市南岸区:探索建立“微益坊” 2019-03-15
  • 839| 150| 876| 186| 674| 159| 994| 146| 97| 916|