native 방법의 사용
예 를 들 면:
public class NativeTest{
public native void info();
}
이 방법 은 추상 적 인 방법 처럼 서명 하 는 방법 만 있 고 방법 체 는 없다.그러나 네 이 티 브 방법 은 보통 C 언어 를 통 해 이 루어 져 야 한다. 즉, C 언어 를 사용 하여 자바 방법 에 실현 해 야 한다.
구체 적 인 실현 절 차 는 다음 과 같다.
1. 자바 h 로 첫 번 째 생 성 된 class 파일 을 컴 파일 하면. h 파일 (C 언어 에서 헤더 파일) 이 생 성 됩 니 다.
2.............................................................................................
3. 두 번 째 부분 에 있 는. cpp 파일 을 동적 링크 라 이브 러 리 파일 로 변환 합 니 다.
4. 자바 에서 System. loadlLibrary () 방법 이나 Runtime 의 loafLibrary () 방법 으로 세 번 째 동적 링크 라 이브 러 리 파일 을 불 러 오 면 자바 에서 이 native () 방법 을 호출 할 수 있 습 니 다.
문제 가 발생 했 습 니 다. 세 번 째 부분 에서. cpp 파일 을 컴 파일 할 때 프로그램 을 현재 컴 파일 환경 에 의존 하 게 됩 니 다.
public class SleepTest
{
public staic void main ( String [] args)
{
long start = System.currentTimeMillis();
Thread.sleep(2);
System.out.println(System.currentTimeMillis()-start);
}
}
답 은 2 가 아니다.JDK 문 서 를 자세히 살 펴 보면 Thread. sleep () 방법 에 대한 소 개 를 보면 sleep () 방법 도 native 방법 이라는 것 을 알 수 있 습 니 다. 이 방법의 구체 적 인 실현 은 그 가 있 는 플랫폼 에 의존 해 야 합 니 다.네 이 티 브 방법 으로 는 크로스 플랫폼 을 만 들 수 없다 는 것 이다.
따라서 자 바 는 크로스 플랫폼 이지 만 JDK 에는 네 이 티 브 방법 이 많 기 때문에 이런 방법 을 사용 할 때 플랫폼 의 차이 점 에 주의 하 세 요.
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.