`

JAVA环境配置

阅读更多

JAVA环境配置

一段时间不用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
系统打印: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!

------------------------
用Ant来编译运行java程序
------------------------
首先安装Ant,步骤很简单:
1.将Ant压缩包解压到一个目录,例如D:\Ant1.5.2;
2.在环境变量中添加以下变量:
ANT_HOME=D:\Ant1.5.2  //可以改为相应的目录
3.修改Path环境变量
PATH=%ANT_HOME%\bin;%PATH%

最后给出了一个Ant的build.xml文件,运行ant即可完成所有以上的编译和运行过程,其build文件如下:
<project name="HelloWorld" default="jar" basedir=".">
    <description>
        building HelloWorld!
    </description>
  <!-- set global properties for this build -->
  <property name="src" location="src"/>
  <property name="build" location="classes"/>
  <property name="dist"  location="dist"/>
  <property name="user.name" value="Wang Xuebin"/>

  <target name="init">
    <!-- Create the time stamp -->
    <tstamp/>
    <!-- Create the classes directory structure used by compile -->
    <mkdir dir="${build}"/>
  </target>

  <target name="build" depends="init"  description="build the source code" >
    <!-- Compile the java code from ${src} into ${build} -->
    <javac srcdir="${src}" destdir="${build}"/>
  </target>

  <target name="jar" depends="build"
        description="generate the distribution" >
    <!-- Create the distribution directory -->
    <mkdir dir="${dist}/lib"/>

    <!-- Put everything in ${build} into the MyProject-${DSTAMP}.jar file -->
  <jar destfile="${dist}/HelloWorld-${DSTAMP}.jar" basedir="${build}">
   <manifest>
    <attribute name="Built-By" value="${user.name}"/>
    <attribute name="Main-Class" value="org.javaresearch.HelloWorld"/>
   </manifest>
  </jar> 
 </target>
 
  <target name="run" depends="build" description="run HelloWorld">
    <java classpath="${build}" classname="org.javaresearch.HelloWorld"></java>
  </target>

  <target name="runjar" depends="jar" description="run HelloWorld in jar file">
         <java jar="${dist}/HelloWorld-${DSTAMP}.jar"
           fork="true"
           failonerror="true"
           maxmemory="128m"
           >
         <arg value="-h"/>
         <classpath>
           <pathelement location="${dist}/HelloWorld-${DSTAMP}.jar"/>
           <pathelement path="${java.class.path}"/>
         </classpath>
       </java>
  </target>
 
  <target name="clean"
        description="clean up" >
    <!-- Delete the ${build} and ${dist} directory trees -->
    <delete dir="${build}"/>
    <delete dir="${dist}"/>
  </target>
</project>

分享到:
评论

相关推荐

    java环境配置,一看就会

    ### Java环境配置详解 在计算机科学领域中,Java是一种广泛使用的编程语言,它以其平台无关性、健壮性和面向对象的特性而闻名。对于初学者来说,正确地配置Java环境是学习旅程的第一步。本文将详细介绍如何配置Java...

    java环境配置

    java环境配置

    关于java环境配置的一些问题

    在探讨“关于java环境配置的一些问题”这一主题时,我们主要关注的是如何正确地设置Java开发环境,确保Java应用程序能够顺利运行。对于初次接触Java环境配置的朋友们,以下的详细指南将提供必要的帮助。 ### Java...

    Java环境配置.pdf

    ### Java环境配置详解 #### 一、Java环境配置概述 Java是一种广泛使用的编程语言,用于构建跨平台的应用程序。为了能够在计算机上运行Java程序,必须首先安装Java开发工具包(JDK),并且正确配置环境变量。本文将...

    java环境配置大全-所配置环境

    Java环境配置是开发Java应用程序的基础步骤,涉及到JDK(Java Development Kit)的安装、环境变量的设置以及相关开发工具的配置。以下将详细介绍这些过程: 首先,安装JDK是Java开发的第一步。从官方网址...

    java环境配置步骤

    ### Java环境配置步骤详解 #### 一、引言 在CentOS 7.0系统上进行Java开发时,尽管默认已经包含了JDK 1.7和1.8,但可能存在安装环境不完整的情况,比如缺失必要的`tool.jar`和`dt.jar`等组件。这会导致诸如`javac`...

    java环境配置实验报告

    ### Java环境配置实验报告知识点详解 #### 实验背景与意义 本实验主要针对Java开发环境的基本配置进行实践学习。通过此次实验,旨在帮助学生掌握Java环境的搭建方法,熟悉Java程序的编译与运行流程,为后续深入...

    java环境配置小工具

    java环境配置小工具,方便简单一键配置java环境

    java环境配置,与配置原理

    Java环境配置与设置JAVA_HOME,CLASSPATH,PATH的目的

    Java环境配置小工具

    Java环境变量一键配置,支持拖拽获取jdk位置,已安装jdk未配置自动识别位置,支持变更jdk版本,快速切换

    一键配置java环境配置

    "一键配置java环境配置"的标题和描述旨在提供一个简便的方法,帮助用户快速、无痛地完成这些步骤,避免手动配置带来的繁琐和可能的错误。 首先,Java Development Kit(JDK)是Java编程的基础,它包含了编译、调试...

    java环境配置及验证方法

    Java 环境配置及验证方法 Java 是一种广泛应用的编程语言,用于开发跨平台的应用程序。为确保 Java 开发环境的正确配置,需要进行相应的设置和验证。本文将详细介绍 Java 环境配置的步骤和验证方法。 一、下载和...

Global site tag (gtag.js) - Google Analytics