对于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. SQLite to Asp.net Entity Framework 部署问题

    最近做了一个小应用,使用SQLite做数据库.开始用DBLINQ的时候,做一个LINQ查询出现不支持的问题.后来看到Entity Framework是可以支持SQLite的,于是很快转换过来.完成开发 ...

  2. Debugging a SQL Server query with WinDbg

    Debugging a SQL Server query with WinDbg May 13, 2014 · Klaus Aschenbrenner · 5 Comments (Be sure to ...

  3. f5压缩

    F5应用加速 编辑 F5在4个方面对Web应用提速: 一降低网络传输的压力,最典型技术是压缩 F5的加速技术把100K的页面压缩到20K在广域网上传输,一些标准的浏览器如IE.火狐可以自动解压,这一过 ...

  4. xss---攻击

    xss表示Cross Site Scripting(跨站脚本攻击),它与SQL注入攻击类似,SQL注入攻击中以SQL语句作为用户输入,从而达到查询/修改/删除数据的目的,而在xss攻击中,通过插入恶意 ...

  5. 鼠标悬浮弹出标题制作JQuery

    今天给客户制作的网站里面加个效果,当鼠标在列表图片之外时,标题不显示,当鼠标悬浮在图片之上时,标题从底部弹出. 效果图如下: 鼠标悬浮前: 鼠标悬浮后: html代码如下: <ul class= ...

  6. 执行sudo命令时的提示语,如何修改?

    如图所示,执行sudo命令,提示语(有中文和英文两个版本): 上面的提示内容是sudo软件原生的内容. 使用下面的方法,有的时候是可行的.sudo -p '提示语' 命令 如果要修改sudo软件原生的 ...

  7. 【温故知新】——Bootstrap响应式知识点复习

    前言:本文是自己在学习课程中的课程笔记,这里用来温故知新的,并非本人原创. 开发工具 1.记事本,Editplus,... ... 2.Sublime,Dreamweaver 3.Webstorm = ...

  8. vscode 折叠所有区域

  9. 从有序数组中查找某个值 low_bound

    二分搜索 题意: 给定长度为n的单调不下降数列a0, ...an-1和一个数k,求满足ai>=k条件的最小的i. 不存在的情况下输出n. 输入: 5        3 2 3 3 5 6 输出: ...

  10. DevOps 初学者的入门指南

    原文地址:http://blog.csdn.net/FIRim/article/details/52681704 当我们谈到 DevOps 时,可能讨论的是:流程和管理,运维和自动化,架构和服务,以及 ...