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


    学习makefile教程,ubuntu中文网

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

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

    hellocat

    Hellocat.java

    import java.util.ArrayList;
    import java.util.Iterator;
    public class Hellocat{
        public static void main(String[] args){
            ArrayList list1 = new ArrayList();
            list1.add("one");
            list1.add("two");
            System.out.println("<--list1中共有>" + list1.size()+ "个元素");  
            System.out.println("<--list1中的内容:" + list1 + "-->");
            
            Cat mike = new Cat();
            mike.run();
            System.out.println(mike.name + "is running over
    ");
        }
    }

    Cat.java

    public class Cat{
        Cat()
        {
            this.name = "wali";
            this.age = 2;
        }
        public void run()
        {
            System.out.println("run run run
    ");
        }
        public String name;
        public int age;
    }

    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)

    代码不方便展示,主要有两个主类,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
    #this script 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

    就方便了许多

  • 相关阅读:
    最实用的logback讲解(2)—appender
    深入理解lombok
    idea(三)最值得安装的几款插件
    idea(二)初次安装强烈建议修改的配置
    swagger2的使用和swagger2markup离线文档的生成(最简单的方式)
    maven(一) 基础知识
    maven(二)pom文件详解
    ubuntu下jdk的安装
    maven(三)最详细的profile的使用
    profile之springboot
  • 原文地址:https://www.cnblogs.com/CreatorKou/p/9180935.html
Copyright © 2020-2023  润新知