`

如何用javac 和java 编译运行整个Java工程

阅读更多

前言:本文教你怎么用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命令用于打印,举个例子:
[python] view plaincopy
#!/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工程,把编译的文件放到指定目录下:

[python] view plaincopy
#!/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,用于执行程序:

[python] view plaincopy
#!/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脚本的简单总结,用的比较简单,如有错误,欢迎指正!
        个人原创,脑力产品,实属不易,欢迎转载,转载请注明出处

 

分享到:
评论

相关推荐

    Java零基础 - 使用java命令运行Java程序.md

    本文详细介绍了如何使用java命令来运行已经编译好的Java程序,并附带示例源码和详细步骤。通过阅读本文,您将学习到以下内容: ...运行Java程序之前,确保已经成功编译了Java源代码并生成了相应的字节码文件。

    javac编译成功用java运行class文件出现“找不到或无法加载主类”的问题解决起来很简单.doc

    javac编译成功用java运行class文件出现“找不到或无法加载主类”的问题解决起来很简单.doc

    JAVA初学小程序

    我们使用了两个命令 javac 和 java。 javac 后面跟着的是java文件的文件名,例如 HelloWorld.java。 该命令用于将 java 源文件编译为 class 字节码文件,如: javac HelloWorld.java。 运行javac命令后,如果成功...

    Java程序设计基础:使用命令行方式开发Java程序.pptx

    使用命令行方式开发Java程序 使用命令行方式开发Java程序 Java程序的运行机制 ...(Java Compiler——javac名称的由来),用于对指定的Java源代码进行编译。 打开一个DOS窗口,进入Welcome.java文件所在

    JAVA_Ant详细介绍与应用

    包含文档和项目实例。 用Ant实现Java项目的自动构建和部署。 JAVA_Ant详细介绍与应用。...2.使用Ant的java任务运行Java程序 3.使用Ant的jar任务生成jar文件 4.使用Ant的war任务打包J2EE Web项目 五.总结

    JAVA编译程序 CMD

    每次编译或运行Java程序时,都要在DOS命令行中输入很长的javac或java命令, 太麻烦,想法来了,编写一个适用于Windows操作系统的批处理文件, 运行本程序,输入文件名即可对JAVA编译和运行了,是初学JAVA的好帮手。

    java基础笔记

    编译时 javac 源文件名 java 运行的时候 java 含有main方法的 类名 注意:不要写 class 公有的 public 的类 其名字必须跟所在java源文件的文件名完全相同 main 方法在不在公有的类中没关系 非公有的类 可以跟源文件...

    Java快速命令编译助手(JCR)

    再输入Javac 文件名.Java 也不用输入:Javac 文件名 了,现在我们只要把我们要编译的源文件拖放到本程序的图标或快捷方式的图标上即可自动进行编译,编译之后按任意键又能自动加载到Java虚拟机上进行运行!...

    java基础学习笔记 java整合技术 java工具类.rar

    JRE是java运行环境,运行java所必需的文件 JDK是开发工具包,增加编译器和调试器等用于程序开发的文件 JVM是java的虚拟机,负责将java的字节码解码运行,边解码边运行 3.2:运行步骤 1、编写源代码(写一个xx.java...

    完全免费的Java/jsp开发编辑工具FirstJava2

    你还将学会直接用javac命令来编译代码,java运行代码方法,ANT方式编译和运行代码, 创建自己的更高效的Build.xml文件,实现DIY自已的工程, Eclipse和Jbuild编译和运行代码方式,和这差不多,把他们隐藏起来了. 请...

    java环境搭建文档

    java环境变量搭建 ... javac java编译命令 将java原代码文件.java编译成字节码文件.class java -version 显示当前jdk版本 //////////////////////////////////////////////////////////////////////

    java代码命令行编译在手机上运行的示例

    java代码命令行编译在手机上运行的示例。 chcp 65001 javac -encoding utf-8 ./org/test/TestJava.java dx --dex --output =D:\pro\TestJava.dex .\org\test\TestJava.class

    学习Java基本语法的仓库 存放学习Java的md文件和Java代码.rar

    3. java虚拟机屏蔽了底层运行平台的差别,实现一次编译,到处运行 JDK JDK的全称(java Development Kit java开发工具包) JDK=JRE+java的开发工具(java,javac,javadoc,javap等) JDK给java开发人员使用包含JRE...

    使用Java编写脚本来将PDF转换为图像,Java的PDF处理库,Apache PDFBox

    2、执行以下命令来运行生成的类文件,并提供PDF文件的路径和输出文件夹的路径作为命令行参数: java PDFToImageConverter path_to_pdf_file.pdf path_to_output_folder 请将path_to_pdf_file.pdf替换为您要转换的PDF...

    传智播客.黑马程序员《Java 基础入门》课后习题答案

    JDK(Java Development Kit,Java 开发工具包),它包含编译工具、解释工具、文档制作工具、打 包工具多种与开发相关的工具,是提供给 Java 开发人员使用的。初学者学习和使用 Java 语言时, 首先必须下载和安装 JDK...

    Java初学者怎么入门.md一份给Java初学者的入门指南

    3. 解释了Java编译和运行的过程,javac编译器和java虚拟机的作用。 4. 总结了Java编程语言的优点:跨平台、面向对象、高效、安全等。 5. 给出了10条学习Java的建议,如选择好的教材、掌握基本语法、多实践编程、注重...

    关于java在cmd命令行的编译和运行问题

    关于java在cmd命令行的编译和运行问题的解决方法 典型的java.lang.ClassNotDefFoundError异常的解决方案 和配置classpath需要注意的问题

    《Java程序设计》课程实验指导书程序代码(答案)(实验一)

    (2) 编译运行程序,观察运行情况和输出结果。(使用JDK环境,调用javac.exe和java.exe编译和执行程序) 4.在Editplus(或JCreator ,Textpad)环境下编写一个HelloWorldApplet.java程序。 (1)在public void paint...

    javajava概要设计方案.doc

    JSP , tomcat ,CJKAnalyzer包 操作系统 OS ( winxp 或 win2000 ) 编译程序 javac , eclipse(IDE) 测试支持软件 java , eclipse(IDE) 2.3基本设计概念和处理流程 总体框架如下所示: 2.4人工处理过程 如通过启动...

    javac命令的使用(含有包名)

    对classpath的理解,使用javac命令进行编译.java文件和使用java命令运行.class文件时,对含有包名的类的例子(是一个简单的例子,配有源码和运行结果图)

Global site tag (gtag.js) - Google Analytics