命令提示符下编译运行java工程
发布日期:2021-05-27 02:54:30 浏览次数:29 分类:技术文章

本文共 3535 字,大约阅读时间需要 11 分钟。

命令提示符下编译运行java工程

前言:本文教你怎么用javacjava命令,以及如何利用脚本(shellbat)方便处理,并用简单的实例展示这些用法。

        IDE是把双刃剑,它可以什么都帮你做了,你只要敲几行代码,点几下鼠标,程序就跑起来了,用起来相当方便。你不用去关心它后面做了些什么,执行了哪些命令,基于什么原理。然而也是这种过分的依赖往往让人散失了最基本的技能,当到了一个没有IDE的地方,你便觉得无从下手,给你个代码都不知道怎么去跑。好比给你瓶水,你不知道怎么打开去喝,然后活活给渴死。

一、javac命令

       javac 用于编译Java文件,格式为:
       
javac[options]  [sourcefiles] [@files]
      

 其中:

       options:命令行选项;

   sourcefiles:一个或多个要编译的源文件;

例如:

   @files:一个或多个对源文件进行列表的文件,有时候要编译的文件很多,一个个敲命令会显得很长,也不方便修改,可以把要编译的源文件列在文件中,在文件名前加@,这样就可以对多个文件进行编译,对编译一个工程很有用,方便,省事。

例如:

 

  -d用于指定编译成的class文件的存放位置,缺省情况下不指定class文件的存放目录,编译的class文件将和源文件在同一目录下;

       -classpath可以简写成-cp,用于搜索编译所需的class文件,指出编译所用到的class文件的位置,如jarzip或者其他包含class文件的目录,指定该选项会覆盖CLASSPATH的设定;
       
-sourcepath用于搜索编译所需的源文件(即java文件),指定要搜索的源文件的位置,如jarzip或其他包含java文件的目录;
       
需要注意windows下和linux下文件路径分隔符和文件列表(即-classpath-sourcepath指定的文件)分隔符的区别:
       
windows下文件路径分隔符用 \,文件列表分隔符用分号 ;
       
linux下文件路径分隔符用 /,文件列表分隔符用冒号 :

实例:

注意:-d 后面是 空格 + 

点的意思是,在 .java 文件的根目录

实例:

假设abc.java在路径c:\src里面,在任何的目录的都可以执行以下命令来编译。

javac -classpath c:\classes;c:\jar\abc.jar;c:\zip\abc.zip -sourcepathc:\source\project1\src;c:\source\project2\lib\src.jar;c:\source\project3\lib\src.zip c:\src\abc.java
表示编译需要c:\classed下面的class文件,c:\jar\abc.jar里面的class文件,c:\zip\abc.zip里面的class文件
还需要c:\source\project1\src下面的源文件,c:\source\project2\lib\src.jar里面的源文件,c:\source\project3\lib\src.zip里面的源文件,
注意:jarzip里面的源文件不会有什么改动,目录下的源文件,有可能会被重新编译。

二、java命令

       java 用于执行程序,格式如下:
       
java[options] classfile
       options:命令行选项,一般用于-classpath指定要执行的文件所在的位置以及需要用到的类路径,包括jarzipclass文件目录,会覆盖CLASSPATH的设定

实例:

编译运行带包的java文件

编译:

    javac -cp *.jar A.java

运行:

    java -cp *.jar A

实例:

假设abc.class在路径c:\src里面

可以在任何路径下执行以下命令
java -classpath c:\classes;c:\jar\abc.jar;c:\zip\abc.zip;c:\src abc

三、脚本

        如果要敲的命令很长,每次要编译运行的时候都要重新敲一遍,这是一件很痛苦的事情,所以用脚本可以大大方便你的工作量。在linux下用shell脚本,windows下用bat批处理程序。因为是在linux下,我这里只是简单介绍一下shell,关于bat批处理程序的语法自己百度一下,不难。
1.
开头
        
linux有很多不同的shell,通常使用bashbourneagain shell),程序必须以下面的行开始:
        
#!/bin/sh
        #!用来告诉系统用后面的参数来执行程序,这里使用的是/bin/sh
        
要使你的脚本能够执行,还必须让这个文件有可执行权限,使用下面命令更改文件权限:
        
chmod +x filename
2. 注释
        
#开始的句子表示注释,一直到这行结束,多写注释有利于以后重新看的时候知道自己在做什么
3.
变量
        
shell的脚本的变量都是字符串,不用申明类型,定义的时候直接  变量=  即可,用到变量的的时候用 $变量或者 ${
变量}echo命令用于打印,举个例子:

1.  #!/bin/sh  

2.  定义变量words,值为hello world  

3.  words="hello world"  

4.  打印变量words的值  

5.  echo $words  

4. 命令

        shell脚本里面可以直接任意使用linux命令,要用到什么命令直接敲进去即可。记住一些常用的命令:
        
cd                  打开目录
        
ls -l                显示目录信息
        
rm -fr             递归删除目录及下面的文件,不提示信息
        
mkdir              创建目录
        
pwd               显示当前路径
        
kill -9 pid        强制杀掉某个进程号的进程
        
pkill               杀掉某个名字的进程
        
ps aux            显示运行进程信息
        
netstat -pan 查看网络端口监听情况

四、例子

        下面是文件compile,用于编译整个java工程,把编译的文件放到指定目录下:

1.  #!/bin/sh  

2.  # Define some constants  

3.  ONSSERVER=ONSServer  

4.  PROJECT_PATH=/root/iot-oid  

5.  JAR_PATH=$PROJECT_PATH/lib  

6.  BIN_PATH=$PROJECT_PATH/bin  

7.  SRC_PATH=$PROJECT_PATH/src/$ONSSERVER  

8.    

9.  # First remove the sources.list file if it exists and then create the sources file of the project  

10. rm -f $SRC_PATH/sources  

11. find $SRC_PATH/com -name *.java > $SRC_PATH/sources.list  

12.   

13. # First remove the ONSServer directory if it exists and then create the bin directory of ONSServer  

14. rm -rf $BIN_PATH/$ONSSERVER  

15. mkdir $BIN_PATH/$ONSSERVER  

16.   

17. # Compile the project  

18. javac -d $BIN_PATH/$ONSSERVER -classpath $JAR_PATH/jdom.jar:$JAR_PATH/oro-2.0.8.jar @$SRC_PATH/sources.list  

       下面是文件run,用于执行程序:

1.  #!/bin/sh  

2.    

3.  # Define some constants  

4.  ONSSERVER=ONSServer  

5.  PROJECT_PATH=/root/iot-oid  

6.  JAR_PATH=$PROJECT_PATH/lib  

7.  BIN_PATH=$PROJECT_PATH/bin  

8.    

9.  # Run the project as a background process  

10. nohup java -classpath $BIN_PATH:$JAR_PATH/jdom.jar:$JAR_PATH/oro-2.0.8.jar com.ONSServer.DoUDPRequest &  

 以上是对javacjavashell脚本的简单总结,用的比较简单,如有错误,欢迎指正!

参考文献:

转载地址:https://blog.csdn.net/leijie0322/article/details/41284497 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:hadoop1.0.2+spark1.0.2伪分布式安装总结
下一篇:Mahout安装及测试

发表评论

最新留言

能坚持,总会有不一样的收获!
[***.219.124.196]2024年07月14日 13时44分27秒