概述

  编译和运行java分别要用到javac命令和java命令,虽然可以使用IDE(比如eclipse,InteliJ,NetBean...),按一下快捷键就可以实现编译并运行,但是,在之前还要配置一下,对于初学Java的同学来说,如果开始就用IDE,可能对于配置有点懵,还不如简简单单的写两条命令呢。

  为什么不直接使用javac file.java && java file这一条命令了?因为如果是切换文件,就不是特别方便了,还要修改一下命令。可以考虑写shell脚本,将文件名传入即可,只需要输入一次。

  为什么要写一个shell脚本来做这个事呢? 因为平时写php和python习惯了在命令行中使用命令来运行,老毛病,暂时改不了。而且发现java编译真的好慢。 

 

代码如下


#!/bin/bash
# BuildAndRun.sh
# 编译并运行java代码

file=$1

# 根据文件名来获取生成的class名称
class=$(echo $file | awk -F '.' '{print $1}')

echo "开始编译,请等待!!!"
echo "------------------------------------"

# 编译
javac $file

if [ $? -eq 0 ]; then
    echo "编译成功, 准备运行!!!"
    echo "------------------------------------"

    # 运行
    java $class
    if [ $? -eq 0 ]; then
        echo "------------------------------------"
        echo "运行完毕!!!"
    else
        echo "------------------------------------"
        echo "运行时出错!!!"
    fi
else 
    echo "------------------------------------"
    echo "编译时出现错误!!!"
fi

# 防止影响后面的测试,运行完毕之后,可以将生成的class文件删除
if [ -f $class.class ]; then
    rm -rf $class.class
fi

    

运行测试


$ cat Test.java
public class Test{
    public static void main(String [] args) {
        System.out.println("hello world");
    }
}

$ ./BuildAndRun.sh Test.java
开始编译,请等待!!!
------------------------------------
编译成功, 准备运行!!!
------------------------------------
hello world
------------------------------------
运行完毕!!!


  

github地址

  https://github.com/searchingbeyond/CompileAndRunJava/tree/master