개발 순서
1. dll에 있는 함수를 쓰기 위해서 dll의 함수와 똑같은 함수를
자바 코드로 작성하고 dll에 있는 내용을 쓰는식으로 해야한다.
*그래서 자바 코드 작성부터 시작한다.
(dll을 불러오는데 자바 코드를 왜 작성하는지 이해를 못해서 한참 책을 몇번을 읽었는지 모른다)
2. 자바 코드 작성 후 자바 헤더를 만들어준다.
3. c에 내가 만든 자바 헤더를 첨부하고 dll을 만들어준다.
4. 자바에서 dll을 읽어준다.
6. C 컴파일 하기
일반 컴파일과는 다르게 #include <jni.h> 라는 헤더를 쓰고 있기 때문에
자바에 있는 파일을 연결해서 컴파일해야한다.
아니면 헤더가 뭔지 모른다고 컴파일이 안되기 때문이다.
gcc 컴파일 실행하기
이 책은 리눅스 책이기 때문에 인터넷을 뒤져 저렇게 쓰는거라고 했다.
하지만 재대로 위치를 찾지 못하는듯하여 모든 값을 다 적어 보기로 했다.
본인 자바 위치를 확인하고 그 경로를 찾아 넣으면 된다.
이번에 자바에 include라는 폴더도 들어가서 보고 재밌었다.
gcc -fpic -c -I"\Program Files\Java\jdk1.8.0_231\include" -I"\Program Files\Java\jdk1.8.0_231\include\win32" helloworld.c
이렇게 작성하면 문제없이 컴파일이 진행된다.
오브젝트 파일을 만들었습니다.
dll 파일 실행하기
오브젝트 파일을 dll파일로 만들기
이렇게 다시 dll을 만들었다.
이제 실행해보자
AA
func
show1
show2 : 9
show3 : 1 2 3
show4 : d
show5 : a b c
show6 : AA
Method func ok ...
잘 실행이되는데 func가 왜 맨 위로 올라가는거지? c가 잘못됬나?
아무튼 연습용이니 이정도로 해보자
특히 System.loadLibrary("helloworld64"); 이게 잘 안돌아간다.
System.load("") 이걸 사용하여 절대경로로 작성해서 dll을 돌리면 잘 될 것 입니다.
'자바 코드' 카테고리의 다른 글
[javafx] html 글 작성하기 (0) | 2021.09.14 |
---|---|
자바 셋업파일/설치파일 만들어 보기(#1_ Launch4j) (0) | 2021.07.22 |
JNI로 개발하기 (3. 자바헤더파일 및 C 파일) (0) | 2021.03.17 |
JNI로 개발하기 (2. 예제 코드 작성해보자_자바부분 [수정업]) (0) | 2021.03.17 |
JNI로 개발하기 (1.MinGW 설치 "the file has been downloaded incorrectly") (1) | 2021.03.17 |
댓글