这个测试是在如下环境中进:
java version "1.8.0_211"
Gradle 5.5
Linux version 4.15.0-54-generic (gcc version 7.4.0 (Ubuntu 7.4.0-1ubuntu1~18.04.1))
intellij
1、在intellij idea 中创建测试项目:File -> New -> Project -> New Project
Next
输入项目的 GroupId 和 ArtifactId
输入项目名称(Project name)
2、项目构建完后,在Java插件两个测试类 Greeter.java 和 HelloWorld.java
Greeter.java
public class Greeter {
public String sayHello() {
return "Hello world!";
}
}
HelloWorld.java
import java.util.Date;
public class HelloWorld {
public static void main(String[] args) {
Date currentTime = new Date();
System.out.println("The current local time is: " + currentTime.toString());
int i = 0;
while (i++ < 15){
System.out.println("sleep " + i + "s");
try {
Thread.sleep(1000);
}catch (Exception e){
System.out.println(e.getMessage());
}
}
Greeter greeter = new Greeter();
System.out.println(greeter.sayHello());
}
}
3、构建项目:双击build 进行构建
构建完成后在项目根目录下生成一个build文件夹,所需jar包在 build/libs文件夹下
4、给 20190722-1.0-SNAPSHOT.jar 中 META-INF/MANIFEST.MF 文件添加上
Main-Class: HelloWorld
5、运行jar文件: cd 到 20190722-1.0-SNAPSHOT.jar 所在目录,执行
java -jar 20190722-1.0-SNAPSHOT.jar
结果为:
The current local time is: Mon Jul 22 15:39:01 CST 2019
sleep 1s
sleep 2s
sleep 3s
sleep 4s
sleep 5s
sleep 6s
sleep 7s
sleep 8s
sleep 9s
sleep 10s
sleep 11s
sleep 12s
sleep 13s
sleep 14s
sleep 15s
Hello world!
另外:简单的启动和关闭脚本(脚本放在和jar文件同一目录下)
a5673@gzr023:~/xuzj/bak/20190722_testGradle/build/libs$ cat startup.sh
echo "start ..."
echo $(pwd)
dir=$(pwd)
jar1=${dir}/20190722-1.0-SNAPSHOT.jar
java -jar ${jar1} >/${dir}/output.file 2>&1 &
echo $! > ${dir}/id.pid
echo "finish ..."
a5673@gzr023:~/xuzj/bak/20190722_testGradle/build/libs$ cat shutdown.sh
pid=$(cat ./id.pid)
echo $pid
rm ./id.pid
ls -la