关键词:
转自:http://blog.csdn.net/huagong_adu/article/details/6929817
前言:本文教你怎么用javac和Java命令,以及如何利用脚本(shell或bat)方便处理,并用简单的实例展示这些用法。
IDE是把双刃剑,它可以什么都帮你做了,你只要敲几行代码,点几下鼠标,程序就跑起来了,用起来相当方便。你不用去关心它后面做了些什么,执行了哪些命令,基于什么原理。然而也是这种过分的依赖往往让人散失了最基本的技能,当到了一个没有IDE的地方,你便觉得无从下手,给你个代码都不知道怎么去跑。好比给你瓶水,你不知道怎么打开去喝,然后活活给渴死。
之前用惯了Myeclipse,Java文件编译运行的命令基本忘得一干二净。现在项目出了原型,放到服务器上去测试,SSH一登陆上服务器就傻眼了,都是命令行,以前程序图标什么的都成了浮云,程序放上去了不知道怎么去编译运行,只能补补课了,下面做下补课笔记。
一、javac命令
javac 用于编译Java文件,格式为:
java [options] [sourcefiles] [@files]
其中:
options:命令行选项;
sourcefiles:一个或多个要编译的源文件;
@files:一个或多个对源文件进行列表的文件,有时候要编译的文件很多,一个个敲命令会显得很长,也不方便修改,可以把要编译的源文件列在文件中,在文件名前加@,这样就可以对多个文件进行编译,对编译一个工程很有用,方便,省事。
有几个比较重要的选项:
-d 用于指定编译成的class文件的存放位置,缺省情况下不指定class文件的存放目录,编译的class文件将和源文件在同一目录下;
-classpath 可以简写成-cp,用于搜索编译所需的class文件,指出编译所用到的class文件的位置,如jar、zip或者其他包含class文件的目录,指定该选项会覆盖CLASSPATH的设定;
-sourcepath用于搜索编译所需的源文件(即java文件),指定要搜索的源文件的位置,如jar、zip或其他包含java文件的目录;
需要注意windows下和linux下文件路径分隔符和文件列表(即-classpath和-sourcepath指定的文件)分隔符的区别:
windows下文件路径分隔符用 ,文件列表分隔符用分号 ;
linux下文件路径分隔符用 / ,文件列表分隔符用冒号 :
二、java命令
java 用于执行程序,格式如下:
java [options] classfile
options:命令行选项,一般用于 -classpath 指定要执行的文件所在的位置以及需要用到的类路径,包括jar、zip和class文件目录,会覆盖CLASSPATH的设定
三、脚本
如果要敲的命令很长,每次要编译运行的时候都要重新敲一遍,这是一件很痛苦的事情,所以用脚本可以大大方便你的工作量。在linux下用shell脚本,windows下用bat批处理程序。因为是在linux下,我这里只是简单介绍一下shell,关于bat批处理程序的语法自己百度一下,不难。
1. 开头
linux有很多不同的shell,通常使用bash(bourne again shell),程序必须以下面的行开始:
#!/bin/sh
#!用来告诉系统用后面的参数来执行程序,这里使用的是/bin/sh
要使你的脚本能够执行,还必须让这个文件有可执行权限,使用下面命令更改文件权限:
chmod +x filename
2. 注释
以#开始的句子表示注释,一直到这行结束,多写注释有利于以后重新看的时候知道自己在做什么
3. 变量
shell的脚本的变量都是字符串,不用申明类型,定义的时候直接 变量=值 即可,用到变量的的时候用 $变量 或者 ${变量},echo命令用于打印,举个例子:
- #!/bin/sh
- # 定义变量words,值为hello world
- words="hello world"
- # 打印变量words的值
- echo $words
4. 命令
shell脚本里面可以直接任意使用linux命令,要用到什么命令直接敲进去即可。记住一些常用的命令:
cd 打开目录
ls -l 显示目录信息
rm -fr 递归删除目录及下面的文件,不提示信息
mkdir 创建目录
pwd 显示当前路径
kill -9 pid 强制杀掉某个进程号的进程
pkill 杀掉某个名字的进程
ps aux 显示运行进程信息
netstat -pan 查看网络端口监听情况
四、例子
下面是文件compile,用于编译整个java工程,把编译的文件放到指定目录下:
- #!/bin/sh
- # Define some constants
- ONSSERVER=ONSServer
- PROJECT_PATH=/root/iot-oid
- JAR_PATH=$PROJECT_PATH/lib
- BIN_PATH=$PROJECT_PATH/bin
- SRC_PATH=$PROJECT_PATH/src/$ONSSERVER
- # First remove the sources.list file if it exists and then create the sources file of the project
- rm -f $SRC_PATH/sources
- find $SRC_PATH/com -name *.java > $SRC_PATH/sources.list
- # First remove the ONSServer directory if it exists and then create the bin directory of ONSServer
- rm -rf $BIN_PATH/$ONSSERVER
- mkdir $BIN_PATH/$ONSSERVER
- # Compile the project
- javac -d $BIN_PATH/$ONSSERVER -classpath $JAR_PATH/jdom.jar:$JAR_PATH/oro-2.0.8.jar @$SRC_PATH/sources.list
下面是文件run,用于执行程序:
- #!/bin/sh
- # Define some constants
- ONSSERVER=ONSServer
- PROJECT_PATH=/root/iot-oid
- JAR_PATH=$PROJECT_PATH/lib
- BIN_PATH=$PROJECT_PATH/bin
- # Run the project as a background process
- nohup java -classpath $BIN_PATH:$JAR_PATH/jdom.jar:$JAR_PATH/oro-2.0.8.jar com.ONSServer.DoUDPRequest &
以上是对javac、java和shell脚本的简单总结,用的比较简单,如有错误,欢迎指正!
个人原创,脑力产品,实属不易,欢迎转载,转载请注明出处!
参考文献:
javac和java命令:
http://jeffchen.iteye.com/blog/395671
http://www.blogjava.net/pdw2009/archive/2008/06/12/207413.html?opt=admin
shell编程:
http://bbs.chinaunix.net/thread-391751-1-1.html
http://hi.baidu.com/zccamy/blog/item/b5220f94517de10e7bf48057.html
如何用javac和java编译运行整个java工程
1、将编译好的比如Demo.java文件放到某个盘下(比如D盘)2、进入控制台(window+R键---->输入cmd)3、键入命令D: 回车4、进入D盘之后键入命令:javacDemo.java(要保证你的jdk是安装好的)5、如果没报错,即编译完成,可执行,键入... 查看详情
如何用java启动windows命令行程序
先请编译和运行下面程序:importjava.util.*;importjava.io.*;publicclassBadExecJavac2publicstaticvoidmain(Stringargs[])tryRuntimert=Runtime.getRuntime();Processproc=rt.exec("javac");intexitVal=proc.waitFor();System.out.println("ProcessexitValue:"+exitVal);catch(Throwablet)t.printStackTrace(... 查看详情
如何用java程式在控制台输出"我是一个java程式"?
参考技术A如何用JAVA程式在控制台输出"我是一个JAVA程式"?通过System.out.println的方式输出到控制台定义A.java档案,并输出字串我是一个java程式publicclassApublicstaticvoidmain(String[]args)定义main方法System.out.println("我是一个JAVA程... 查看详情
java中运行不了.class文件
...步:直接输入盘符即可完成路径切换(如D:)。参考技术A编译时用的javac的版本和运行时java的版本不一致造成的.编译时用:"javac-versionhello.java",显示一下编译器javac.exe的版本.运行:"java-version",显示一下虚拟机java.exe... 查看详情
windows下用命令行编译并运行java工程,怎样编译引用的多个jar包和配置文件.xml呢?
...数指明了你要用到的jar包,可以用分号分隔.java就是你要编译的java文件,可以用通配符。 查看详情
java如何运行,从哪运行?
...装好配置环境变量后,系统就承认了java,javac等命令,当编译好java文件,就可以在开始——运行——cmd的dos系统下运用指定命令运行java文件。JDK是整个Java的核心,包括了Java运行环境,Java工具和Java基础的类库。JDK包含的基本组... 查看详情
如何用javac命令编译一个目录以及子目录下所有的java文件呢?
D:\workflow是我放java文件的目录里面有很多好几层子目录子目录里放着很多java文件我如何把他们一起同时编译呢?不想一个一个写文件名,就应该想到如何生成命令行。人类进化的动力就是想吃饱又想偷懒。:: WindowsD:\\Workfl... 查看详情
java源代码怎么运行
...序.java文件的话,非项目那种单篇幅的源代码需要先进行编译,生成.class文件可以在命令控制台下用java文件名进行运行,编译java文件需要javac.exe程序应该是jdk中的工具,所以你需要下载jdk并配置环境变量,然后在控制台运行javac... 查看详情
请详细写出javac和java两个命令的使用方式
javaac和java两个命令的使用详解:一、javac命令javac用于编译Java文件,格式为:java[options][sourcefiles][@files]其中:options:命令行选项;sourcefiles:一个或多个要编译的源文件;@files:一个或多个对源文件进行列表的文件,有时候要... 查看详情
在做java开发时,build和compile有啥联系和区别?谢谢。
...什么联系和区别?谢谢。build会构建整个工程,compile只会编译工程,build包含compile,是将源码解释后形成可执行文件。命令行下的javac就是compilejava则是build。在实际开发的时候这两个没太大区别,只有部署的时候才会用到build。... 查看详情
java手动带包编译与运行
Java手动带包编译与运行1.编辑好一个Java代码2.在保存的路径下编译用javac-d.test2.java运行前面是固定的后面是类名注意d.后面有空格不然会报错javac:找不到目录在dos窗口运行整个命令d的后面要加空格再加点不然会报javac:无效的标记... 查看详情
如何在ultraedit中编译和运行java程序
...具配置”。2点击“插入”,在“菜单项”名称上输入“编译java程序”,在“命令行”里输入“javac%n%e”,在工作目录上填“%p”。3切换到“输出”项,选择“输出到列表框”和“捕获输出”,点击“应用”。4同样,也可以定义... 查看详情
eclipse使用步骤,javac和java指令的区别
javac指令和java指令:javac负责将源文件编译成字节码文件(.class),编译时要指明.java后缀,不能省略java指令负责将字节码文件转为机器码,对其进行运行,java指令后的字节码文件省略.class后缀直接操作javac对源文件进行编译的弊端:每对... 查看详情
javac如何编译.java,.jar
我用javac编译java文件,它提示软件包不存在,即我的jar包;我的.java和.jar在同一目录,比如D:\code>,请问如何编译能找到软件包,编译出.class.jar是用的Apache的包,和环境变量没有关系,我的tomcat,ejb都跑的呼呼的,就是想知... 查看详情
java编译和运行class
编译WIN: javac-encodingUTF-8-Djava.ext.dirs=$JAVA_HOME/jre/lib/ext;/app/lib-d. ./Hdfstest.javalinux: javac-encodingUTF-8-Djava.ext.dirs=$JAVA_HOME/jre/lib/ext:/app/lib-d. ./Hdfstest. 查看详情
如何用eclipse建立一个java应用程序
1、用Eclipse建立一个Java应用程序首先需要创建一个Java工程,在工程里添加一个类,接着在此类中编写代码即可完成一个Java应用程序的建立了;2、使用的工具是Eclipse;3、步骤如下:(1)、打开Eclipse,点击New菜单,新建一个JavaP... 查看详情
如何为javac设置path变量,以便我可以手动编译我的.java工作?
这是我的驱动器上的地址:C:ProgramFilesJavajdk1.6.0_18in我将如何设置路径变量,以便我可以进入命令窗口(windowskey+r“cmd”)并能够键入以下内容:javacTestApp.java我正在使用Windows7专业版。答案每次启动它时,将SETPATH命令键入命令... 查看详情
editplus配置添加java和javac,达到运行java效果。
首先,找到工具tools=>ConfigureUserTools点击AddTool,分别添加两个编译javac和运行java的路径。配置完成后,我们就可以在工具中直接使用了。 查看详情