在命令符模式下编译并执行Java程序
对于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 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程序的更多相关文章
- 如何用javac 和java 编译运行整个Java工程 (转载)【转】在Linux下编译与执行Java程序
如何用javac 和java 编译运行整个Java工程 (转载) http://blog.csdn.net/huagong_adu/article/details/6929817 [转]在Linux ...
- Java知识系统回顾整理01基础01第一个程序02命令行格式编译和执行Java程序
一.先看运行效果 在控制台下运行第一个Java程序,可以看到输出了字符串 hello world 二.准备项目目录 通常都会在e: 创建一个project目录 在这个例子里,我们用的是e:/proje ...
- 创建、编译、执行 java程序
java源文件(.java)——Java字节码文件(.class)——在java虚拟机上执行 其他语言很多是编译后执行,所以无法跨平台
- window下如何使用文本编辑器(如记事本)创建、编译和执行Java程序
window下如何使用文本编辑器(如记事本)创建Java源代码文件,并编译执行 第一步:在一个英文目录下创建一个 .text 文件 第二步:编写代码 第三步:保存文件 方法一:选择 文件>另存为 ...
- mysq在命令行模式下执行shell命令
mysql可以在命令行模式下执行shell命令 mysql> help For information about MySQL products and services, visit: htt ...
- Linux在终端命令行模式下智能补全功能以及组合键
linux命令行下也有很多热键(快捷键).先来看看tab键 1.如果想看看linux下以c开头的命令可直接在命令行下敲入c然后连续敲两次tab,再选择y,会显示所有以c开头的命令. 2.涉及到文件时, ...
- VIM命令行模式下的相关知识
当按下:键时, Vim会切换到命令行模式: 重复上次执行的EX命令,只需按@:就可以: 在一行或多个连续行执行命令 很多的EX全天候可以指定操作范围,如行号,位置标记等: 以:print命令作为演示, ...
- mplayer命令行模式下的使用方法【转】
mplayer命令行模式下的使用方法http://hi.baidu.com/lovehack2006/blog/item/162ef9778214111eb051b9d4.htmlMPlayerMPl ...
- Debug模式下编译溢出问题
问题: 代码在Debug模式下编译报出内存溢出的错误,而Release模式下则没有. 由于Debug模式下包含调试信息,并且不作任何优化.而Release模式进行了各种优化,内存检测等操作均省去,使得 ...
随机推荐
- 改变Ubuntu控制台字体大小(转)
输入 sudo dpkg-reconfigure console-setup 选择一个适合的字体和字号即可. 参考: http://www.codeweblog.com/%E6%94%B9%E5%8F ...
- hibernate多对一单向配置
查看:http://blog.csdn.net/u010702229/article/details/13170263
- 【京东个人中心】——Nodejs/Ajax/HTML5/Mysql爬坑之功能与数据分析
一.引言 在学习了Nodejs和HTML5之后,发现了Nodejs的使用很方便,和php是完全不同的另一种后台语言.我也明白了,在一个项目里,是不可能同时存在Apach服务器(php)和Web服务器( ...
- 2017.2.16 开涛shiro教程-第十七章-OAuth2集成(一)服务器端
原博客地址:http://jinnianshilongnian.iteye.com/blog/2018398 根据下载的pdf学习. 开涛shiro教程-第十七章-OAuth2集成 1.OAuth2介 ...
- 自主研发异步通信框架Minma(支持长连接和短连接)
Minma是英文Minma Is Not Mina的简称 该框架采用Java NIO的核心技术,实现了基于事件驱动的多线程异步通信框架,支持常见的长连接(腾讯QQ)和短连接(http通信) 对于开发人 ...
- android图片素材參考
hpi:通常是大图像素是:480x800 (640*960)宽比长大致为0.6左右 一般240dpi. 小图的像素依据实际来. xhdi:一般大图像素是: 640x1136 (72 ...
- 以前整理的网络上免费API接口
以前整理的一些免费的API接口,具体是否好用还需要时间测试,但是先分享给大家. 天气接口 聚合数据: http://op.juhe.cn/onebox/weather/query 用例 官方文档 来源 ...
- project修改时间日历
视图→甘特图 格式→时间表→右键时间表 详细的日程表,然后双击时间即可
- 【Python】从文件中读取数据
从文件中读取数据 1.1 读取整个文件 要读取文件,需要一个包含几行文本的文件(文件PI_DESC.txt与file_reader.py在同一目录下) PI_DESC.txt 3.1415926535 ...
- mysql启动參数(/etc/my.cnf)具体解释汇总
在linux以下的/etc/my.cnf的參数具体解释汇总 MYSQL–my.cnf配置中文具体解释 basedir = path 使用给定文件夹作为根文件夹(安装文件夹). character- ...