java makefile jar包_java makefile学习实践(编译的javac命令写在makefile中,运行命令java写在shell脚本中)...

学习makefile教程,ubuntu中文网

1.写一个简单的java项目,不需要外部jar,用的简单的

importjava.util.ArrayList;是可以从CLASSPATH环境变量中找到的,在javac阶段不需要特殊添加-cp

hellocat

612ec33abd5d036a3618018737c6bdf3.png

Hellocat.java

importjava.util.ArrayList;importjava.util.Iterator;public classHellocat{public static voidmain(String[] args){

ArrayList list1= newArrayList();

list1.add("one");

list1.add("two");

System.out.println("" + list1.size()+ "个元素");

System.out.println("");

Cat mike= newCat();

mike.run();

System.out.println(mike.name+ "is running over\n");

}

}

Cat.java

public classCat{

Cat()

{this.name = "wali";this.age = 2;

}public voidrun()

{

System.out.println("run run run\n");

}publicString name;public intage;

}

makefile

result : Hellocat.java Cat.java

javac Hellocat.java

clean :

rm-f Hellocat.class Cat.class

执行的时候还得输入java Hellocat,这个项目比较小无所谓,如果遇到大的项目,各种package,需要调整包目录,尤其是需要引入外部jar的,java运行命令需要指出-cp位置

2.比较大的项目,需要引入外部jar(netty4.1.25)

505af44059106fa11657a6645c75dced.png

代码不方便展示,主要有两个主类,HelloWorldClient和HelloWorldServer

makefile:

SRCFILES := $(wildcard *.java)

CFLAGS := -cp /home/kourui/netty4125/netty-4.1.25.Final/jar/all-in-one/netty-all-4.1.25.Final.jar

result : $(SRCFILES)

javac $(CFLAGS) HelloWorldServer.java ServerChannelInitializer.java ServerHandler.java

javac $(CFLAGS) HelloWorldClient.java ClientChannelInitializer.java ClientHandler.java

clean :

rm-f *.class

运行脚本:

startserver:(pwd可以忽略,当时是提示用的)

#!/bin/bash

#this script avaiable for starting server

pwd

java -cp ..:/home/kourui/netty4125/netty-4.1.25.Final/jar/all-in-one/netty-all-4.1.25.Final.jar pkg.HelloWorldServer

startclient:

#!/bin/bash

#thisscript starts client

pwd

java-classpath /home/kourui/jmaketest/hellocs:/home/kourui/netty4125/netty-4.1.25.Final/jar/all-in-one/netty-all-4.1.25.Final.jar pkg.HelloWorldClient

这样运行时直接通过命令:

./startserver

./startclient

就方便了许多

2020b666024cffae923299f5706547cf.png

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值