对于Java初学者,建议使用纯文本文件来编写Java程序,并在命令符模式下使用工具程序编译和执行Java程序。使用javac工具编译.java,使用java工具执行.class。(推荐sublime编辑器)。

怎么在命令符模式下编译并执行Java程序?弄了好久查了不少资料终于解决。记录下来,便于总结、分享、查阅。

首先根据自己计算机的操作系统下载和安装sun公司的JDK,http://www.oracle.com/technetwork/cn/java/javase/downloads/index.html。安装过程中会提示安装JRE,注意将JDK和JRE放置在两个文件夹中。我的目录:D:\hsl\JAVA\JDK和D:\hsl\JAVA\JRE。

公用JRE主要是为开发好的Java程序提供执行的平台。JDK本身也有自己的JRE,位于JDK安装目录的jre目录下。我的目录:D:\hsl\JAVA\JDK\jre。JDK本身所附的JRE主要是开发Java程序时做测试用。初学者只要知道有两种不同的VM即可。

安装完JDK后,设置path和classpath。(如果使用IDE工具Eclipse,直接打开Eclipse就可使用,不用设置环境变量)

先说一下我的JDK路径和.java和.class路径。JDK安装路径位于D:\hsl\JAVA\JDK,.java和.class路径位于C:\java。

环境变量配置:

PATH=.;%JAVA_HOME%\bin;
CLASSPATH=.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
JAVA_HOME=D:\hsl\JAVA\JDK

下面具体讲解环境变量配置(均输入双引号里面的内容):

右键我的电脑,打开属性。选择“高级—环境变量”。需要设置三个属性“JAVA_HOME”、“path”、“classpath”,在没安装过jdk的环境下,path通常已存在(安装过其它软件会自动增加,比如matlab,Python),JAVA_HOME和classpath不存在。

1、新建变量JAVA_HOME,该变量的内容是java的安装路径。

目的:方便引用,比如JDK安装在D:\hsl\JAVA\JDK目录,则设置D:\hsl\JAVA\JDK为该环境变量值。以后要使用这个路径时,只需输入%JAVA_HOME%即可,避免每次引用都输入很长的路径串。当JDK路径被迫改变的时候,仅需更改JAVA_HOME的变量值即可,否则要更改任何用绝对路径引用JDK目录的文档。第三方软件会引用约定好的JAVA_HOME变量,不然你将不能正常使用该软件。用JAVA久了就会知道,要是某个软件不能正常使用,可能由此引起。

2、在系统变量里面找到path(没有就新建),该变量的含义是系统在任何路径下都可识别java命令,变量值为“.;%JAVA_HOME%\bin;”(刚才设置JAVA_HOME的值),也可以直接写上安装路径“D:\hsl\JAVA\JDK\bin;”。

目的:这个变量设置为了程序能找到相应的".class"文件。举个例子:你编译一个JAVA程序A.java,会得到一个A.class的类文件,在当前目录下执行javaA,将会得到相应的结果(前提是你已经设置CLASSPATH为".")。现在,你把A.class移到别的目录下(例如:"D:\"),执行javaA,将会找不到.class文件。现在你把CLASSPATH增加为:".;e:\",再在任何目录下运行javaA,一切正常,java命令通过CLASSPATH找到了.class文件。

3、新建变量classpath,该变量的含义是为java加载类(class or lib)路径,只有类在classpath中,java命令才能识别。其值为“.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\toos.jar;"(加.表示当前路径),与“%JAVA_HOME%"有相同意思。

目的:你想在任何时候都使用%JAVA_HOME%\bin\java等来执行java命令吗?当然不会。那可以选择把%JAVA_HOME%\bin添加到PATH路径下,这样,我们在任何路径下就可以仅用java来执行命令了(当你在命令提示符窗口输入代码时,操作系统会在当前目录和PATH变量目录里查找相应的应用程序,并且执行)。

以上三个环境变量设置完毕,确定。

验证看看安装和配置是否成功。打开cmd进入dos系统界面。分别输入java,javac,java–version进行验证。

在cmd输入“java”

输入javac

输入java-version(该命令查看jdk版本,java后要空格再加–version)

配置好了,下面进行代码测试。

在C盘创建一个java的文件夹(为什么是C盘呢?我就是因为之前在D盘创建,一直无法运行.class,浪费了很多时间,虽然原因已找到了,但为了方便还是放在C盘吧,反正代码占的内存很小)。新建txt,输入代码,另存为HelloWorld.java。代码:

public class HelloWorld
{public static void main(String args[])
{System.out.println("Hello World"

);
}
}

在cmd输入命令,运行成功,如图:

cd c:\java:进入存放.java和.class的目录

javac HelloWorld.java:用javac工具程序编译.java

java HelloWorld:用java工具程序执行.class。

tips:(与上文没有关系)

1、ctrl+v在cmd下不起作用,但可鼠标右键选择粘贴。

2、打开cmd,默认在c盘目录下,若要切换到其它盘目录,只输入cd D:\hsl\JAVA\javaclasspath是无效的,要先输入D:,再输入cd D:\hsl\JAVA\javaclasspath可进入D盘相应目录。

3、也可不设置环境变量,直接在cmd输入

Set Path=D:\hsl\JAVA\JDK\bin;%Path%
set CLASSPATH=%CLASSPATH%;D:\hsl\JAVA\javaclasspath

但每次打开cmd都要粘贴相同命令。我试过,只课编译不能运行,没有找到原因。大家可以试试:)

4、等价命令

D:
cd D:\hsl\JAVA\javaclasspath
javacHelloJava.java

等价于

D:
javac D:\hsl\JAVA\javaclasspath\HelloJava.java

Reference:

[1] http://blog.csdn.net/yougou_sully/article/details/7182877

[2] Java jdk6 学习笔记

在命令符模式下编译并执行Java程序的更多相关文章

  1. 如何用javac 和java 编译运行整个Java工程 (转载)【转】在Linux下编译与执行Java程序

    如何用javac 和java 编译运行整个Java工程 (转载)  http://blog.csdn.net/huagong_adu/article/details/6929817 [转]在Linux ...

  2. Java知识系统回顾整理01基础01第一个程序02命令行格式编译和执行Java程序

    一.先看运行效果 在控制台下运行第一个Java程序,可以看到输出了字符串 hello world 二.准备项目目录 通常都会在e: 创建一个project目录 在这个例子里,我们用的是e:/proje ...

  3. 创建、编译、执行 java程序

    java源文件(.java)——Java字节码文件(.class)——在java虚拟机上执行 其他语言很多是编译后执行,所以无法跨平台

  4. window下如何使用文本编辑器(如记事本)创建、编译和执行Java程序

    window下如何使用文本编辑器(如记事本)创建Java源代码文件,并编译执行 第一步:在一个英文目录下创建一个 .text 文件 第二步:编写代码 第三步:保存文件 方法一:选择 文件>另存为 ...

  5. mysq在命令行模式下执行shell命令

    mysql可以在命令行模式下执行shell命令 mysql> help For information about MySQL products and services, visit: htt ...

  6. Linux在终端命令行模式下智能补全功能以及组合键

    linux命令行下也有很多热键(快捷键).先来看看tab键 1.如果想看看linux下以c开头的命令可直接在命令行下敲入c然后连续敲两次tab,再选择y,会显示所有以c开头的命令. 2.涉及到文件时, ...

  7. VIM命令行模式下的相关知识

    当按下:键时, Vim会切换到命令行模式: 重复上次执行的EX命令,只需按@:就可以: 在一行或多个连续行执行命令 很多的EX全天候可以指定操作范围,如行号,位置标记等: 以:print命令作为演示, ...

  8. mplayer命令行模式下的使用方法【转】

    mplayer命令行模式下的使用方法http://hi.baidu.com/lovehack2006/blog/item/162ef9778214111eb051b9d4.htmlMPlayerMPl ...

  9. Debug模式下编译溢出问题

    问题: 代码在Debug模式下编译报出内存溢出的错误,而Release模式下则没有. 由于Debug模式下包含调试信息,并且不作任何优化.而Release模式进行了各种优化,内存检测等操作均省去,使得 ...

随机推荐

  1. MFC中 报错:error : bitmap file Res\tankBattle.ico is not in 3.00 format

    今天换了一个ico图标,本来源图像是bmp的,让我改了后缀名成ico. 然后编译就报错了:error : bitmap file Res\tankBattle.ico is not in 3.00 f ...

  2. C++中的void类型

    Technorati 标签: void,指针 1.1. void类型 void类型其实是一种用于语法性的类型,而不是数据类型,主要用于作为函数的参数或返回值,或者定义void指针,表示一种未知类型. ...

  3. Oracle递归操作

    需求:找出代理商中没有挂商家的代理商 简单SQL如下: select * from t_proxy tp where tp.id not in (SELECT tp.id as p_id FROM t ...

  4. 如何从底层调试docker

    How the docker container creation process works (from docker run to runc) Over the past few months I ...

  5. 单选复选框的js代码取值

    单选框 复选框选中后的js代码处理 <script type="text/javascript"> function check(){ document.getElem ...

  6. vector(可变数组) 用于UDP通信

    头文件: #include<vector.h> 然后,声明并初始化vctor数组. vector<char>  str(len); 其中len可以是变量或者常量.(其实用常量就 ...

  7. 怎样在编译的时候,控制删除apk不用的资源?

    1.改动alps/meidatek/config/xxx/ProjectConfig.mk下的MTK_PRODUCT_LOCALS,去掉不用的资源,比方屏幕密度或语言等.  2. nodpi和mipm ...

  8. web 表单方式上传文件方法(不用flash插件)

    原理:使用表单的input type="file"标签,通过ajax提交表单请求,后台获取请求中的文件信息,进行文件保存操作 由于我测试用的做了一个上传文件和上传图片方法,所以我有 ...

  9. 阿里云官方教程 Linux 系统挂载数据盘

    适用系统:Linux(Redhat , CentOS,Debian,Ubuntu) *  Linux的云服务器数据盘未做分区和格式化,可以根据以下步骤进行分区以及格式化操作. 下面的操作将会把数据盘划 ...

  10. MySql(六):影响 MySQL Server 性能的相关因素

    MySQL 最多的使用场景是WEB 应用,那么我们就以一个WEB 应用系统为例,逐个分析其系统构成,进行经验总结,分析出数据库应用系统中各个环境对性能的影响. 一.商业需求对性能的影响 这里我们就拿一 ...