자바 캘린더 활용 및 공휴일 구하는 로직을 추가하여 달력을 만들어 보았다.

 

[Java] 공휴일 구하기

한국 공휴일 구하기 public class LunarCalendar { static Set holidaysSet = new HashSet(); public static final int LD_SUNDAY = 7; public static final int LD_SATURDAY = 6; public static final int LD_MONDAY = 1; public static void main(String[] args) {

smrdls-java.tistory.com

 

 

 

public class JavaCalandar {
    public static final String black    = "\u001B[30m" ;
    public static final String red      = "\u001B[31m" ;
    public static final String green    = "\u001B[32m" ;
    public static final String yellow   = "\u001B[33m" ;
    public static final String blue     = "\u001B[34m" ;
    public static final String purple   = "\u001B[35m" ;
    public static final String cyan     = "\u001B[36m" ;
    public static final String white     = "\u001B[37m" ;

    public static final String exit     = "\u001B[0m" ;

    public static void main(String[] args) {
        Calendar cal = Calendar.getInstance();
        int last = cal.getActualMaximum(Calendar.DATE);
        LunarCalendar lc = new LunarCalendar();
        while(true){
            Set set = lc.holidayArray(cal.get(Calendar.YEAR)+"");
            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
            System.out.println("--------"+cal.get(Calendar.YEAR)+"년 "+(cal.get(Calendar.MONTH)+1)+"월---------");
            System.out.println(red+"일\t"+exit+"월\t화\t수\t목\t금\t"+blue+"토"+exit);
            System.out.println("--------------------------");
            cal.set(Calendar.DATE, 1);
            int day = cal.get(Calendar.DAY_OF_WEEK);
            for (int i = 1; i <day; i++) {
                System.out.print("\t");
            }
            for (int i = 1; i <= last; i++) {
                cal.set(Calendar.DATE, i);
                day = cal.get(Calendar.DAY_OF_WEEK);
                if (day == Calendar.SATURDAY) {
                    System.out.println(blue+i+exit);
                }else if(day == Calendar.SUNDAY) {
                    System.out.print(red + i + exit+"\t");
                }else {
                    if(set.contains(sdf.format(cal.getTime()))){
                        System.out.print(red + i + exit+"\t");
                    }else{
                        System.out.print(i + "\t");
                    }
                }
            }
            Scanner sc = new Scanner(System.in);
            String str = sc.nextLine();
            if(str.equals("<")) {
                cal.add(Calendar.MONTH, -1);
                last = cal.getActualMaximum(Calendar.DATE);
            }else if(str.equals(">")){
                cal.add(Calendar.MONTH, 1);
                last = cal.getActualMaximum(Calendar.DATE);
            }
        }
    }

}

'JAVA > Java Study' 카테고리의 다른 글

[JAVA] 한글 -> 로마자 변환  (0) 2024.01.19
[Java] Java 한글 라이브러리 hwpxlib  (0) 2023.12.18
[Java] 공휴일 구하기  (0) 2023.11.30
[Java] Oracle 타입별 매핑표  (1) 2023.11.28
[Java] portable 버전 만들어보기  (0) 2023.10.24

icu4j-4.0.1.jar
5.39MB

한국 공휴일 구하기


public class HoliDayUtil {

    static final int LD_SUNDAY = 7;
    static final int LD_SATURDAY = 6;
    static final int LD_MONDAY = 1;

    public static void main(String[] args) {
        HoliDayUtil lc = new HoliDayUtil();
        System.out.println(lc.holidayArray("2024"));
        System.out.println(lc.isHoliday("20240128"));
        System.out.println(lc.isHoliday(new Date(2024, 0, 28)));
        System.out.println(lc.isHoliday(new Date()));
    }

    /**
     * 음력날짜를 양력날짜로 변환
     */
    private static String Lunar2Solar(String yyyymmdd) {
        ChineseCalendar cc = new ChineseCalendar();

        if (yyyymmdd == null)
            return null;

        String date = yyyymmdd.trim();
        if (date.length() != 8) {
            if (date.length() == 4)
                date = date + "0101";
            else if (date.length() == 6)
                date = date + "01";
            else if (date.length() > 8)
                date = date.substring(0, 8);
            else
                return null;
        }

        cc.set(ChineseCalendar.EXTENDED_YEAR, Integer.parseInt(date.substring(0, 4)) + 2637);   // 년, year + 2637
        cc.set(ChineseCalendar.MONTH, Integer.parseInt(date.substring(4, 6)) - 1);              // 월, month -1
        cc.set(ChineseCalendar.DAY_OF_MONTH, Integer.parseInt(date.substring(6)));              // 일

        LocalDate solar = Instant.ofEpochMilli(cc.getTimeInMillis()).atZone(ZoneId.of("UTC")).toLocalDate();

        int y = solar.getYear();
        int m = solar.getMonth().getValue();
        int d = solar.getDayOfMonth();

        StringBuilder ret = new StringBuilder();
        ret.append(String.format("%04d", y));
        ret.append(String.format("%02d", m));
        ret.append(String.format("%02d", d));

        return ret.toString();
    }


    public static boolean isHoliday(Date date){
        String yyyyMMdd = new java.text.SimpleDateFormat("yyyyMMdd").format(date);
        return isHoliday(yyyyMMdd);
    }

    public static boolean isHoliday(String yyyyMMdd){
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
        if(holidayArray(yyyyMMdd.substring(0,4)).contains(yyyyMMdd)) return true;
        else if(LocalDate.parse(yyyyMMdd, formatter).getDayOfWeek().getValue() == LD_SUNDAY) return true;
//        else if(LocalDate.parse(yyyyMMdd, formatter).getDayOfWeek().getValue() == LD_SATURDAY) return true;
        else return false;
    }

    public static Set<String> holidayArray(String yyyy) {
        Set<String> holidaysSet = new HashSet<>();
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");

        // 양력 휴일
        holidaysSet.add(yyyy + "0101");   // 신정
        holidaysSet.add(yyyy + "0301");   // 삼일절
        holidaysSet.add(yyyy + "0505");   // 어린이날
        holidaysSet.add(yyyy + "0606");   // 현충일
        holidaysSet.add(yyyy + "0815");   // 광복절
        holidaysSet.add(yyyy + "1003");   // 개천절
        holidaysSet.add(yyyy + "1009");   // 한글날
        holidaysSet.add(yyyy + "1002");   // 한글날
        holidaysSet.add(yyyy + "1225");   // 성탄절

        // 음력 휴일

        String prev_seol = LocalDate.parse(Lunar2Solar(yyyy + "0101"), formatter).minusDays(1).toString().replace("-", "");
        holidaysSet.add(yyyy + prev_seol.substring(4));        // ""
        holidaysSet.add(yyyy + SolarDays(yyyy, "0101"));  // 설날
        holidaysSet.add(yyyy + SolarDays(yyyy, "0102"));  // ""
        holidaysSet.add(yyyy + SolarDays(yyyy, "0408"));  // 석탄일
        holidaysSet.add(yyyy + SolarDays(yyyy, "0814"));  // ""
        holidaysSet.add(yyyy + SolarDays(yyyy, "0815"));  // 추석
        holidaysSet.add(yyyy + SolarDays(yyyy, "0816"));  // ""


        try {
            // 어린이날 대체공휴일 검사 : 어린이날은 토요일, 일요일인 경우 그 다음 평일을 대체공유일로 지정

            int childDayChk = LocalDate.parse(yyyy + "0505", formatter).getDayOfWeek().getValue();
            if (childDayChk == LD_SUNDAY) {      // 일요일
                holidaysSet.add(yyyy + "0506");
            }
            if (childDayChk == LD_SATURDAY) {  // 토요일
                holidaysSet.add(yyyy + "0507");
            }

            // 설날 대체공휴일 검사
            if (LocalDate.parse(Lunar2Solar(yyyy + "0101"), formatter).getDayOfWeek().getValue() == LD_SUNDAY) {    // 일
                holidaysSet.add(Lunar2Solar(yyyy + "0103"));
            }
            if (LocalDate.parse(Lunar2Solar(yyyy + "0101"), formatter).getDayOfWeek().getValue() == LD_MONDAY) {    // 월
                holidaysSet.add(Lunar2Solar(yyyy + "0103"));
            }
            if (LocalDate.parse(Lunar2Solar(yyyy + "0102"), formatter).getDayOfWeek().getValue() == LD_SUNDAY) {    // 일
                holidaysSet.add(Lunar2Solar(yyyy + "0103"));
            }

            // 추석 대체공휴일 검사
            if (LocalDate.parse(Lunar2Solar(yyyy + "0814"), formatter).getDayOfWeek().getValue() == LD_SUNDAY) {
                holidaysSet.add(Lunar2Solar(yyyy + "0817"));
            }
            if (LocalDate.parse(Lunar2Solar(yyyy + "0815"), formatter).getDayOfWeek().getValue() == LD_SUNDAY) {
                holidaysSet.add(Lunar2Solar(yyyy + "0817"));
            }
            if (LocalDate.parse(Lunar2Solar(yyyy + "0816"), formatter).getDayOfWeek().getValue() == LD_SUNDAY) {
                holidaysSet.add(Lunar2Solar(yyyy + "0817"));
            }
        } catch (Exception e) {
            e.printStackTrace();
        }

        return holidaysSet;
    }

    private static String SolarDays(String yyyy, String date) {
        return Lunar2Solar(yyyy + date).substring(4);
    }
}

'JAVA > Java Study' 카테고리의 다른 글

[Java] Java 한글 라이브러리 hwpxlib  (0) 2023.12.18
[Java] Calandar 활용  (0) 2023.11.30
[Java] Oracle 타입별 매핑표  (1) 2023.11.28
[Java] portable 버전 만들어보기  (0) 2023.10.24
[Java] 크롤링과 API 차이  (0) 2023.10.23

 

SQL and PL/SQL Data Type Oracle Mapping JDBC Mapping
CHAR, CHARACTER, LONG, STRING, VARCHAR, VARCHAR2 oracle.sql.CHAR java.lang.String
NCHAR, NVARCHAR2 oracle.sql.NCHAR (note 1) oracle.sql.NString (note 1)
NCLOB oracle.sql.NCLOB (note 1) oracle.sql.NCLOB (note 1)
RAW, LONG RAW oracle.sql.RAW byte[]
BINARY_INTEGER, NATURAL, NATURALN, PLS_INTEGER, POSITIVE, POSITIVEN, SIGNTYPE, INT, INTEGER oracle.sql.NUMBER int
DEC, DECIMAL, NUMBER, NUMERIC oracle.sql.NUMBER java.math.BigDecimal
DOUBLE PRECISION, FLOAT oracle.sql.NUMBER double
SMALLINT oracle.sql.NUMBER int
REAL oracle.sql.NUMBER float
DATE oracle.sql.DATE java.sql.Timestamp
TIMESTAMP
TIMESTAMP WITH TZ
TIMESTAMP WITH LOCAL TZ
oracle.sql.TIMESTAMP
oracle.sql.TIMESTAMPTZ
oracle.sql.TIMESTAMPLTZ
java.sql.Timestamp
INTERVAL YEAR TO MONTH
INTERVAL DAY TO SECOND
String (note 2) String (note 2)
ROWID, UROWID oracle.sql.ROWID oracle.sql.ROWID
BOOLEAN boolean (note 3) boolean (note 3)
CLOB oracle.sql.CLOB java.sql.Clob
BLOB oracle.sql.BLOB java.sql.Blob
BFILE oracle.sql.BFILE oracle.sql.BFILE
Object types Generated class Generated class
SQLJ object types Java class defined at type creation Java class defined at type creation
OPAQUE types Generated or predefined class (note 4) Generated or predefined class (note 4)
RECORD types Through mapping to SQL object type (note 5) Through mapping to SQL object type (note 5)
Nested table, VARRAY Generated class implemented using oracle.sql.ARRAY java.sql.Array
Reference to object type Generated class implemented using oracle.sql.REF java.sql.Ref
REF CURSOR java.sql.ResultSet java.sql.ResultSet
Index-by tables Through mapping to SQL collection (note 6) Through mapping to SQL collection (note 6)
Scalar (numeric or character)
Index-by tables
Through mapping to Java array (note 7) Through mapping to Java array (note 7)
User-defined subtypes Same as for base type Same as for base type

'JAVA > Java Study' 카테고리의 다른 글

[Java] Calandar 활용  (0) 2023.11.30
[Java] 공휴일 구하기  (0) 2023.11.30
[Java] portable 버전 만들어보기  (0) 2023.10.24
[Java] 크롤링과 API 차이  (0) 2023.10.23
[Java] 크롤링 1  (0) 2023.10.19

포터블 버전이 필요한 이유로는 

컴퓨터에 자바가 없을수도 있고 버전 호환성이 맞지 않을수도 있다. 

이런경우 내가 세팅해놓은 환경 그대로 프로그램을 동작 시켜야 될 경우가 있다. 

완료된 프로젝트의 경우 포터블로 만들어 놓는다면 언제든지 실행 환경에 관계없이 테스트를 해볼수 있을것이다.

 

기존에 작성되었던 runnable.jar 파일을 이용해서 다음과 같이 포터블 버전 프로그램을 만들수 있다.

프로젝트 구조는 다음과 같이 구성해 보았다. 

 

source 내부 구조이다.

 

1. 사용하고자 하는 자바 버전파일을 넣어 둔다. 

2. 실행시키고 싶은  runnable.jar 파일을 가져온다. 

https://smrdls-java.tistory.com/entry/Java-runnablejar-%EB%A5%BC-%EC%8B%A4%ED%96%89%EC%8B%9C%EC%BC%9C-%EB%B3%B4%EC%9E%90

 

[Java] runnable.jar 를 실행시켜 보자

간혹 가다 보면 프로그램을 이클립스 없이 실행시키고 싶을때가 있을것이다. 이럴 경우 runnable.jar 파일을 통해 프로그램을 실행 시킬수 있다. jar 파일 실행 명령어 java -jar "실행시킬파일명".jar

smrdls-java.tistory.com

 

bat 파일은 윈도우에서 실행 시키는 프로그램이다. linux 버전에서는 sh 파일등 각 운영체제 별로 상이하다.

 

bat 파일 상세 내용이다. 

title <- 실행될 프로그램 제목 

set <- 환경변수 설정할때와 마찬가지로 값을 입력 할수 있다. 

현재 프로그램에서는 JREJDK_HOME으로 경로를

현재 경로 -> source -> JavaJREv8로 지정되었다. 

 

"%JREJDK_HOME%\bin\java"  -jar source\hwpxlib.jar 

해당 구문은 자바 bin에 자바 파일을 이용해서 runnable.jar 파일을 실행시키는 예제이다. 

'JAVA > Java Study' 카테고리의 다른 글

[Java] 공휴일 구하기  (0) 2023.11.30
[Java] Oracle 타입별 매핑표  (1) 2023.11.28
[Java] 크롤링과 API 차이  (0) 2023.10.23
[Java] 크롤링 1  (0) 2023.10.19
[Java] runnable.jar 를 실행시켜 보자  (0) 2023.09.26

https://pythontoomuchinformation.tistory.com/363

'JAVA > Java Study' 카테고리의 다른 글

[Java] Oracle 타입별 매핑표  (1) 2023.11.28
[Java] portable 버전 만들어보기  (0) 2023.10.24
[Java] 크롤링 1  (0) 2023.10.19
[Java] runnable.jar 를 실행시켜 보자  (0) 2023.09.26
[Java] 자바 동적 컴파일3  (0) 2023.09.26

1. Java  URL 에서 제공하는 방식

String domain = "http://google.co.kr";

try{
	URL u = new URL(domain); // (1)
    	HttpURLConnection con = (HttpURLConnection) u.openConnection(); // (2)
        System.out.println(conn.getContentType());        
}catch(MalformedURLException e){
	System.out.println(e);
}catch(IOException e){
	System.out.println(e);
}

2. Jsoup 방식

 


		String domain = "http://google.co.kr";
		Document doc = null;        //Document에는 페이지의 전체 소스가 저장된다

		try {
			doc = Jsoup.connect(domain).get();
		} catch (IOException e) {
			e.printStackTrace();
		}

 

3. Selenium. 방식의 

	
    public static final String WEB_DRIVER_ID = "webdriver.chrome.driver"; //드라이버 ID
	public static final String WEB_DRIVER_PATH = "C:\\chromedriver.exe"; //드라이버 경로
		//드라이버 설정
		try {
			System.setProperty(WEB_DRIVER_ID, WEB_DRIVER_PATH);
		} catch (Exception e) {
			e.printStackTrace();
		}
		
		//크롬 설정을 담은 객체 생성
		ChromeOptions options = new ChromeOptions();
		//브라우저가 눈에 보이지 않고 내부적으로 돈다.
		//설정하지 않을 시 실제 크롬 창이 생성되고, 어떤 순서로 진행되는지 확인할 수 있다.
		options.addArguments("headless");
		
		//위에서 설정한 옵션은 담은 드라이버 객체 생성
		//옵션을 설정하지 않았을 때에는 생략 가능하다.
		//WebDriver객체가 곧 하나의 브라우저 창이라 생각한다.
		WebDriver driver = new ChromeDriver(options);
		
		//이동을 원하는 url
		String url = "https://www.naver.com";
		
		//WebDriver을 해당 url로 이동한다.
		driver.get(url);

 

 

각각 장점과 단점.

'JAVA > Java Study' 카테고리의 다른 글

[Java] portable 버전 만들어보기  (0) 2023.10.24
[Java] 크롤링과 API 차이  (0) 2023.10.23
[Java] runnable.jar 를 실행시켜 보자  (0) 2023.09.26
[Java] 자바 동적 컴파일3  (0) 2023.09.26
자바 동적 컴파일2  (0) 2023.09.18

간혹 가다 보면 프로그램을 이클립스 없이 실행시키고 싶을때가 있을것이다. 

이럴 경우 runnable.jar 파일을 통해 프로그램을 실행 시킬수 있다.

 

jar 파일 실행 명령어

java -jar "실행시킬파일명".jar

 

아래는 한글 자동화 프로그램을 제작했고 해당 파일을 실행시킨 예시이다. 

cmd 를 입력하여 명령 프롬프트 창을 입력하여 실행시킨다.

 

원하는 경로로 이동후 위 명령어를 입력시 jar 파일이 실행된다.

 

'JAVA > Java Study' 카테고리의 다른 글

[Java] 크롤링과 API 차이  (0) 2023.10.23
[Java] 크롤링 1  (0) 2023.10.19
[Java] 자바 동적 컴파일3  (0) 2023.09.26
자바 동적 컴파일2  (0) 2023.09.18
자바 동적 컴파일  (0) 2023.09.18

다음은 기존 구현된 자바 컴파일러를 이용하여 웹으로 구현한 예제이다. 

구현 방식은 프로그래머스 문제와, 형식을 빌려 썼다.

 

오른쪽에 코드 표출 하는 부분은 ace-build라는 툴을 이용하였다.

웹 기반 동적 프로그래밍 예제

 

 

System.out.println(test) 입력

 

오류 컴파일시 해당 오류들을 리턴하는 모습이다.

 

Test case의 경유 메소드를 실행 및 비교하여 정답인지 판별

 

'JAVA > Java Study' 카테고리의 다른 글

[Java] 크롤링과 API 차이  (0) 2023.10.23
[Java] 크롤링 1  (0) 2023.10.19
[Java] runnable.jar 를 실행시켜 보자  (0) 2023.09.26
자바 동적 컴파일2  (0) 2023.09.18
자바 동적 컴파일  (0) 2023.09.18

기존에 글에서 작성한 클래스 파일 생성 메소드를 통해 실제 파일을 동작 시켜 보겠다.

 

1. 원하는 자바 파일 내용을 입력. 

    public String getJava(){
        String javaText =
                "public class Test {\n" +
                        "    public static void main(String[] args) {\n" +
                        "        int arr[] = new int[10];\n" +
                        "        for(int i=0; i<10; i++){\n" +
                        "            arr[i] = i;\n" +
                        "        }\n" +
                        "        int sum=0;   " +
                        "        for(int i=0; i<10; i++){\n" +
                        "            sum += arr[i];\n" +
                        "        }\n" +
                        "        System.out.println(sum);\n" +
                        "    }\n" +
                        "}\n";
        return javaText;
    }

 

2.기존에 만들어둔 자바 컴파일러를 이용해 호출하는 예제.

   컴파일시 에러가 발생하면 컴파일 자체에서 에러 메세지가 생성됨으로 에러가 있는지 파악 하기 위해 검사 진행. 

        String clasName = "Test";
        String error = compile("Test",getJava());
        //error
        if (!error.trim().equals("")) {
            System.out.println(error);
        }

 

3. 컴파일로 생성된 클래스 파일을 호출.

        String folder = System.getProperty("user.dir") + "\\dynamic";

        File file = new File(folder, clasName + ".class");
        byte[] classByte =  classByte = Files.readAllBytes(file.toPath());
        file.delete();

 

4. 클래스 파일로 생성된 값을 클래스 로더를 통해 호출

public class FileClassLoader extends ClassLoader
{
    public Class findClass(byte[] classByte, String name) throws ClassNotFoundException
    {
        return defineClass(name, classByte, 0, classByte.length);d
    }
}
	FileClassLoader fc = new FileClassLoader();
	Class dynamic = fc.findClass(classByte, "dynamic." + clasName);

 

5. 클래스 로더로 호출된 클래스를 인보크 메소드를 통해 메인 메소드 실행.

    인보크 와 관련하여 궁금한점이 있다면 자바 리플렉션에 관하여 한번 찾아보면 좋은 공부가 될것

     Object obj =  dynamic.newInstance();
     Method main = dynamic.getMethod("main", String[].class);
     String[] params = null;
     main.invoke(obj, (Object) params);

6. 다음은 해당 동적 자바 소스를 이용해서 실행시킨 내용.

'JAVA > Java Study' 카테고리의 다른 글

[Java] 크롤링과 API 차이  (0) 2023.10.23
[Java] 크롤링 1  (0) 2023.10.19
[Java] runnable.jar 를 실행시켜 보자  (0) 2023.09.26
[Java] 자바 동적 컴파일3  (0) 2023.09.26
자바 동적 컴파일  (0) 2023.09.18

해당 방법은 자바 컴파일러(javac)를 사용하여 클래스 파일을 생성한 예제이다.

 

 

1. 프로세스를 통한 자바에서 컴파일러 호출 메서드 부분. 

 public String execute(String command) {
        StringBuffer output = new StringBuffer();
        Process process = null;
        BufferedReader bufferReader = null;
        Runtime runtime = Runtime.getRuntime();
        String osName = System.getProperty("os.name");

        // 윈도우일 경우
        if (osName.indexOf("Windows") > -1) {
            command = "cmd /c " + command;
        }

        try {
            process = runtime.exec(command);
            Scanner s = new Scanner(process.getInputStream(), "euc-kr");
            while (s.hasNextLine() == true) {
                //표준출력으로 출력
                output.append(s.nextLine() + System.getProperty("line.separator"));
            }
            s = new Scanner(process.getErrorStream(), "euc-kr");
            while (s.hasNextLine() == true) {
                // 에러 출력
                output.append(s.nextLine() + System.getProperty("line.separator"));
            }
        } catch (IOException e) {
            output.append("IOException : " + e.getMessage());
            e.printStackTrace();
        } finally {
            try {
                process.destroy();
                if (bufferReader != null) bufferReader.close();
            } catch (IOException e1) {
                e1.printStackTrace();
            }
        }
//        System.out.println("this end");
        return output.toString();
    }

 

2. 클래스 이름과, 클래스 내용을 메소드에 담아서 보냄.

    public String compile(String clsName, String clsStr) {
        // 클래스 이름과, 자바 파일 내용 포함.
        // 자바 파일 생성.
        File file = wirteClass(clsName, clsStr);
        
        //자바 파일 컴파일 명령어 
        String command = "javac -encoding UTF-8 dynamic/" + clsName + ".java";
        String result = execute(command);
        // 임시 생성된 자바 파일 삭제.
        file.delete();
        return result;
    }
    
    public File wirteClass(String clsName, String stringClass) {
        String folder = System.getProperty("user.dir") + "\\dynamic";
        // 임의의 패키지명 부여
        return write(folder, clsName + ".java", "package dynamic; " + stringClass);
    }

    private File write(String folderName, String fileName, String result) {
        File folder = new File(folderName);
        if (!folder.exists()) folder.mkdirs();
        FileWriter fw;
        try {
            File file = new File(folderName, fileName);
            fw = new FileWriter(file);
            BufferedWriter bw = new BufferedWriter(fw);
            bw.write(result);
            bw.close();
            return file;
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }

다음 글에서 동적 컴파일 된 클래스를 호출하는 예제를 확인해 보겠다.

'JAVA > Java Study' 카테고리의 다른 글

[Java] 크롤링과 API 차이  (0) 2023.10.23
[Java] 크롤링 1  (0) 2023.10.19
[Java] runnable.jar 를 실행시켜 보자  (0) 2023.09.26
[Java] 자바 동적 컴파일3  (0) 2023.09.26
자바 동적 컴파일2  (0) 2023.09.18

+ Recent posts