通过javac编译源码-如何使用javac和java编译并运行整个Java项目

前言:本文教你如何使用javac和java命令,以及如何使用脚本(shell或bat)来方便处理,并用简单的例子来演示这种用法。

IDE 是一把双刃剑。 它可以为你做一切。 你只需要输入几行代码并点击键盘,程序就会运行。 使用起来非常方便。 你不用担心它之前做了什么,执行过什么命令,基于什么原理。 然而,这些过度的依赖往往会让人们失去最基本的技能。 当你到一个没有IDE的地方时,你会感觉无从下手,不知道如何运行代码。 就像给你一瓶水,你却不知道怎么打开喝,然后就渴死了。

之前用惯了Myeclipse,基本上所有编译和运行Java文件的命令都忘记了。 现在项目已经有了雏形,我把它放到服务器上进行测试。 当我通过 SSH 登录服务器时,我感到很惊讶。 它们都是命令行。 以前的程序图标和其他图标都没有了。 程序放出来后,我不知道如何编译和运行它。 我只能弥补。 我已经做了一些辅导,所以我将在下面做一些辅导笔记。

1.javac命令

javac 用于编译 Java 文件,格式为:

java [选项] [源文件] [@文件]

在:

options:命令行选项;

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

通过javac编译源码-如何使用javac和java编译并运行整个Java项目

@files:列出源文件的一个或多个文件。 有时要编译的文件很多,一一敲入命令会变得很长,也不方便更改。 您可以在文件中列出要编译的源文件。 在文件名前加上@,这样就可以编译多个文件,对于编译工程来说非常好用、方便、省事。

有几个重要的选项:

-d 用于指定编译后的class文件的存储位置。 默认情况下,未指定类文件的存放目录。 编译后的class文件会和源文件在同一个目录下;

-classpath可以简写为-cp,用于搜索编译所需的类文件,并表示编译时使用的类文件的位置,例如jar、zip或其他包含类文件的目录。 指定此选项将覆盖 CLASSPATH 设置。 ;

-sourcepath 用于搜索编译所需的源文件(即java文件),指定要搜索的源文件位置,如jar、zip或其他含有java文件的目录;

需要注意Windows和Linux下文件路径分隔符和文件列表(即-classpath和-sourcepath指定的文件)分隔符的区别:

windows下文件路径分隔符为,文件列表分隔符为分号;

linux下文件路径分隔符为 / ,文件列表分隔符为逗号:

通过javac编译源码-如何使用javac和java编译并运行整个Java项目

2.java命令

java用于执行以下格式的程序:

java [选项] 类文件

options:命令行选项通过javac编译源码,一般用于-classpath指定要执行的文件位置和要使用的类路径通过javac编译源码,包括jar、zip和class文件目录,这将覆盖CLASSPATH设置。

3. 脚本

如果要输入的命令很长,则每次要编译运行时都必须重新输入。 这是一件非常令人沮丧的事情,因此使用脚本可以大大简化你的工作量。 linux下使用shell脚本,windows下使用bat批处理程序。 因为是linux下,所以这里只是简单介绍一下shell,百度一下bat批处理程序的句型也不难。

1. 开始

Linux有许多不同的shell,通常使用bash(bourne Again shell),程序必须以下面一行开始:

通过javac编译源码-如何使用javac和java编译并运行整个Java项目

#!/bin/sh

#! 用于告诉系统执行前面参数的程序,这里是/bin/sh

为了执行您的脚本,您还必须允许该文件具有可执行权限。 使用以下命令修改文件权限:

chmod +x 文件名

2. 评论

以 # 开头的经文表示直到本行末尾的注释。 写更多评论将帮助您稍后重读时知道自己在做什么

3. 变量

shell脚本的变量都是字符串。 无需声明类型。 定义时,只需变量=值。 使用变量时,请使用 $variable 或 ${variable}。 echo 命令用于复制。 这是一个反例。 :

通过javac编译源码-如何使用javac和java编译并运行整个Java项目

        #!/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 查看网口监听情况

4. 例子

下面是文件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脚本的简单总结,使用起来比较简单。 如有错误,还请见谅!

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

悟空资源网 源码编译 通过javac编译源码-如何使用javac和java编译并运行整个Java项目 https://www.wkzy.net/game/191324.html

常见问题

相关文章

官方客服团队

为您解决烦忧 - 24小时在线 专业服务