`

如何用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编程过程中常见的编译和运行步骤。对于刚接触Java编程的开发者来说,通过命令行(CMD)进行源码的javac编译和java运行可能会感到繁琐,而这款...

    java编译和运行

    Java Development Kit (JDK)包含了开发和运行Java程序所需的所有工具,包括JVM(Java Virtual Machine)和Java Runtime Environment (JRE)。JRE是运行已编译Java程序的必备组件,而JDK则增加了编译器和其他开发工具...

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

    在 Java 开发中,经常会遇到一个问题,即 javac 编译成功后,用 java 运行 Class 文件却出现“找不到或无法加载主类”的错误信息。这种问题看似很复杂,但实际上解决起来非常简单。下面我们将详细讲解该问题的解决...

    Java编译运行、反编译、制作javadoc工具

    一、Java编译 Java程序的编译是将源代码(.java文件)转换成字节码(.class文件)的过程。Java的编译器是javac,它会检查源代码的语法和类型,并生成对应的字节码。通过这个小工具,用户可以直接选择源代码文件或...

    javac源代码,java具体编译步骤

    以下是对`javac`源代码及Java编译步骤的详细解析。 1. **词法分析**:编译的第一步是读取源代码文件,并将其分解为一个个最小的有意义单元——词法单元或标记。这些标记包括关键字、标识符、操作符、常量和分隔符等...

    windows命令行中java和javac、javap使用详解(java编译命令)

    总结来说,要利用Windows命令行正确地编译、运行和反编译Java类文件,需要了解命令行的基本操作,正确安装和配置JDK,以及熟悉javac、java和javap这三个命令的具体选项和使用场景。通过这样的过程,我们可以更深入地...

    编译运行java带jar包

    下面我们将详细讲解如何编译和运行包含JAR包的Java程序。 1. **编译Java源代码** 在Java开发中,首先我们需要将.java源代码文件编译成.class字节码文件。这通常通过`javac`命令完成。例如,如果你有一个名为`Main...

    Dos环境下使用javac编译与java执行多个包下的.java文件

    如果`src`目录下有多个包和多个`.java`文件,你需要对每个文件分别运行`javac`命令进行编译。但为了简化操作,可以使用批处理脚本一次性编译所有文件: ```dos @echo off setlocal enabledelayedexpansion for /R ...

    javac1.7源代码(完全版,可运行)

    在OpenJDK 1.7中,javac的源代码是用Java语言编写的,这使得开发者可以深入理解Java编译过程的细节。源代码的结构通常包含多个模块,如前端(frontend)、后端(backend)和类库支持。前端处理包括词法分析、语法...

    命令行编译和运行java类

    ### 命令行编译和运行Java类 在日常的软件开发过程中,开发者经常会遇到需要在命令行环境下编译和运行Java程序的情况。本文将详细介绍如何在DOS(Disk Operating System)环境下,通过命令行工具编译和运行Java程序...

    让EditPlus支持javac,java命令.pdf

    - 在“组名称”下,新建一个组,命名为“Java编译运行”。 - 点击“添加工具”,选择“应用程序”。 - 在“菜单文本”栏中输入“javac”,这将在工具菜单中显示。 - “命令”栏填写Java SDK的安装路径,例如:`C...

    Java语言简介+JDK安装+配置+第一个程序HelloWorld编译运行

    Java 语言简介、JDK 安装和配置、第一个程序 HelloWorld 编译运行 Java 语言简介 Java是一种面向对象的程序设计语言,由Sun公司开发,主要是基于安全性和高效考虑。Java 不仅是一种语言,也是一种技术。它的原意...

    编译和运行java程序的小工具

    这个名为“编译和运行Java程序的小工具”就是为了简化这一过程而设计的。下面将详细解释这款小工具的工作原理以及如何利用它来提升Java开发效率。 首先,Java程序的执行通常需要经过两个主要步骤:编译和运行。编译...

    javac_可以编译目录.rar

    5. **命令行选项增强**:javac 命令行选项得到了扩展,如 `-release` 选项允许指定目标运行时版本,确保编译出的代码与特定 JDK 兼容。此外,还新增了 `-Werror` 选项,将警告视为错误,有助于提升代码质量。 6. **...

    让EditPlus支持javac,java命令.rar

    完成以上步骤后,现在可以在EditPlus中直接编译和运行Java程序了。只需打开.java文件,选中它,然后点击工具栏上的对应图标或者使用快捷键,就可以执行javac和java命令。这样,我们不仅提高了工作效率,也使得编程...

    java反编译工具

    总之,Java反编译工具是开发者的重要辅助工具,可以帮助我们理解和逆向工程已编译的Java代码。JD-GUI作为其中的一员,以其直观的GUI界面和易用性受到了许多用户的青睐。正确使用这些工具,可以提升我们的工作效率,...

    editplus java的编译 运行 教程

    本教程将详细讲解如何在EditPlus中配置环境,以便高效地编译和运行Java程序。 首先,我们需要确保已安装Java Development Kit (JDK),因为EditPlus依赖于JDK来编译和运行Java代码。安装完成后,我们需要在EditPlus...

    java 动态编译.java文件,动态运行类

    在Java编程中,动态编译和运行类是一项重要的能力,特别是在需要实时更新代码或实现热部署的场景下。本文将深入探讨如何利用Java的API来动态编译.java源文件,并执行编译后的类。 首先,Java的`javac`命令行工具是...

    java编译class文件

    标题“java编译class文件”涉及的核心知识点是Java的编译过程。Java源代码文件的扩展名为`.java`,这些文件包含类定义、方法定义以及其他Java语法元素。要将`.java`文件编译成`.class`文件,我们需要使用Java的JDK...

Global site tag (gtag.js) - Google Analytics