상세 컨텐츠

본문 제목

Fedora Server에서 Java 개발 환경 만들기

카테고리 없음

by 붉은지니 2021. 6. 20. 13:30

본문

● 원본문서 : https://docs.oracle.com/javase/tutorial/networking/nifs/parameters.html

디렉토리 구조

  • 작업 순서
  1. options
    -d classes
    -g
    -verbose
    -sourcepath src
    -classpath .:classes
    -Xlint​
    Java Compile시 옵션 파라미터를 설정하는 파일
  2. sources
    src/ListNetEx.java​
    소스코드 리스트
  3. src/ListNetEx.java
    package com.genie;
    import java.io.*;
    import java.net.*;
    import java.util.*;
    import static java.lang.System.out;
    public class ListNetEx {
    	public static void main(String args[]) throws SocketException {
    		Enumeration<NetworkInterface> nets = NetworkInterface.getNetworkInterfaces();
    		for (NetworkInterface netint : Collections.list(nets))
    			displayInterfaceInformation(netint);
    	}
    	static void displayInterfaceInformation(NetworkInterface netint) throws SocketException {
    		out.printf("Display name: %s\n", netint.getDisplayName());
    		out.printf("Name: %s\n", netint.getName());
    		Enumeration<InetAddress> inetAddresses = netint.getInetAddresses();
    		for (InetAddress inetAddress : Collections.list(inetAddresses)) {
    			out.printf("InetAddress: %s\n", inetAddress);
    		}
    		out.printf("Up? %s\n", netint.isUp());
    		out.printf("Loopback? %s\n", netint.isLoopback());
    		out.printf("PointToPoint? %s\n", netint.isPointToPoint());
    		out.printf("Supports multicast? %s\n", netint.supportsMulticast());
    		out.printf("Virtual? %s\n", netint.isVirtual());
    		String mac_addr = null;
    		byte[] mac_bytes = netint.getHardwareAddress();
    		if (mac_bytes == null)
    		{
    			mac_addr = "loopback device";
    		} else {
    			StringBuilder sb = new StringBuilder(18);
    			for (int i = 0; i < mac_bytes.length; i++) {
    				if (sb.length() > 0) sb.append(':');
    				sb.append(String.format("%02X", mac_bytes[i]));
    			}
    			mac_addr = sb.toString();
    		}
    		out.printf("Hardware address: %s\n", mac_addr);
    		out.printf("MTU: %s\n", netint.getMTU());
    		out.printf("\n");
    	}
    }​
    Java Source Code 파일
  4. classes/ListNetEx.mf
    Manifest-Version: 1.0
    Main-Class: com.genie.ListNetEx
    ​
    마지막 줄은 비어있는 라인이 반드시 있어야만 합니다. (위의 예에서 3번째 라인이 있습니다.)
  5. clean (Shell Script : 실행파일)
    #!/bin/bash
    pushd classes > /dev/null
    rm -f com/genie/*.class
    rm -f ListNetEx.jar
    popd > /dev/null​
    만들어진 실행파일들을 삭제합니다.
  6. jake (Shell Script : 실행파일)
    #!/bin/bash
    javac @options @sources​
    Fedora는 기본적으로 make 실행파일이 있기 때문에 jake 이름으로 변경하였습니다.
  7. build (Shell Script : 실행파일)
    #!/bin/bash
    pushd classes > /dev/null
    jar cfm ListNetEx.jar ListNetEx.mf com/genie/*.class
    jar tf ListNetEx.jar
    popd > /dev/null​
    실행에 필요한 파일들을 하나의 jar 파일로 묶습니다.
  8. run (Shell Script : 실행파일)
    #!/bin/bash
    java -classpath classes/ListNetEx.jar com.genie.ListNetEx​
    실행에 필요한 명령 스크립트