2009-03-13 2 views
2

사용자의 직렬 포트에서 읽을 Java 애플릿을 작성하려고합니다. 이를 위해 RXTX library과 함께 Java Comm API을 사용하고 있습니다. 필자는 로컬 Java 애플리케이션을 통해 데이터를 성공적으로 관리했지만 애플릿 내에서 동일한 작업을 수행 할 수 없습니다. 문제는 RXTX 라이브러리가 네이티브 라이브러리이고 Java 애플릿 내에서이 라이브러리를로드하는 방법을 찾지 못했기 때문입니다. 두 개의 흥미로운 기사 (this article을 참조하는 JNI in Applets 사용)를 발견했습니다.하지만 둘 다 10 년이 넘었고 최신 솔루션이 있는지 궁금합니다. 아니면 대안을 제안 할 수 있다면, 나는 그것을 듣고 싶습니다!Java 애플릿 내에서 동적으로 원시 라이브러리로드하기

답변

3

Java Web Start를 사용하십시오. 네이티브 라이브러리를 서명 된 jar로 포함 할 수 있으며 모든 것이 작동합니다.

1) 루트 디렉토리 2) 모든 항아리 3 서명) 모든 단지를 참조하는 JNLP 쓰기에 항아리에 네이티브 librarys을 넣어 (후 JNLP의)

를 작성하는 방법에 대한 검색을 수행 이동 작동해야 함

0

먼저 애플릿에서 그렇게하는 것이 좋지 않은 아이디어라고 생각합니다.

어쨌든 진행 하시려면 JNLPAppletLauncher이 도움이 될 수 있습니다.

0

애플릿에 대해 잘 모르지만, 많이 잠겼습니다. 보안/컴퓨터 리소스에 액세스하는 경우

웹 배포 솔루션이 필요한 경우 Java Web Start을 보았습니까? 특히 이것을 보자. FAQ entry

0

솔직히, Java 애플릿에서 장치에 액세스하려고 시도하는 것은 좋지 않을 수도 있지만, 동적 라이브러리를 기존 애플릿에로드하는 것은 좋지 않은 아이디어이다. 사실, 당신이 현대적인 브라우저를 속이는 방법을 발견 할 수 있다면 나는 놀랄 것입니다. 가능한 보안 의미를 고려하십시오.

다른 질문에 제안 된대로 Web Start로 시작할 수있는 응용 프로그램을 만드는 것이 좋습니다.

+2

현재 Java PlugIn은 브라우저 프로세스 외부에서 애플릿을 실행합니다. 이것들은 Vista의 "낮은 무결성"보안 제한 사항을 깔끔하게 우회합니다. –

+0

Vista가 애플릿을 샌드 박스 처리하지 않는다고 말하는 겁니까? 아마도 dll을로드하는 것보다 보안 공포가 더 심할 것입니다. Java 보안 정책을 위반할뿐만 아니라 실제 나쁜 아이디어가 될 수 있습니다. –

0

나는 진짜 대답에 대해서도 여기에 관심이있다. 제 제안은 RXTX 용 .jar 및 .dll을 \ program files \ java \ tree에 설치하는 것입니다. 애플릿을 사용하기 전에 대상 시스템에 이들을 설치할 수 있습니다. 저는 Java Web Start를 사용하는 것을 좋아합니다. 애플릿에 서명하면 컴퓨터에서 파일을 읽고 쓸 수 없습니까? 그래서 .jar와 .dll을 설치하고 나중에 사용할 수 있습니까?

Windows의 경우 rxtx 대신 "Windows Java 직렬 COM 포트 드라이버"를 사용하는 것이 좋습니다. http://www.engidea.com/blog/informatica/winjcom/winjcom.html 에서 다운로드 할 수 있습니다. 설치 및 사용이 훨씬 쉬워지고 버그가없는 것으로 나타났습니다. USB 포트가 분리되었을 때 RXTX가 충돌하기 때문에 USB 직렬 장치와 함께 RXTX를 사용할 수 없습니다. winjcom은 나를 위해 이러한 문제를 해결했습니다.

"Windows Java 직렬 COM 포트 드라이버"의 DLL이 변경 될 것으로 예상하지 않기 때문에 여전히 DLL을 배포하는 방법을 결정하려고합니다. -Stosh