웹 브라우저에서 jar 파일을 작동 시키는데 어려움을 겪고 있습니다. 나는 이클립스 모두에서 애플릿이 OK이지만, 브라우저에서 나는 NoClassDefFoundError를 얻을 실행하면 :bouncycastle 라이브러리가있는 jar 파일 : NoClassDefFoundError
Exception: java.lang.RuntimeException: java.lang.NoClassDefFoundError: org/bouncycastle/openpgp/PGPException
java.lang.RuntimeException: java.lang.NoClassDefFoundError: org/bouncycastle/openpgp/PGPException
at sun.plugin2.applet.Plugin2Manager.createApplet(Plugin2Manager.java:3116)
at sun.plugin2.applet.Plugin2Manager$AppletExecutionRunnable.run(Plugin2Manager.java:1498)
at java.lang.Thread.run(Thread.java:662)
PGPException는 bcpg-jdk16-146.jar 아카이브의 조직/bouncycastle/OpenPGP를/디렉토리에 하지만 ... My JAR에는 bouncycastle 및 my applet 클래스의 라이브러리가 모두 포함되어 있습니다.
클래스 경로 : lib 디렉토리/bcpg-jdk16-146.jar lib 디렉토리/bcprov - jdk16를 여기에 자사의 아키텍처 : 그것은 다음과 같이
META-INF -MANIFEST.MF -CNSAPPLE.SF -CNSAPPLE.RSA lib -bcprov-jdk16-146.jar -bcpg-jdk16-146.jar com -CNSApplet.class
매니페스트 파일은 클래스 경로와 주요 클래스를 정의 -146.jar
메인 클래스 : com.CNSApplet
그리고 애플릿을 호출하는 HTML 코드 :
를<applet code="com.CNSApplet.class" width="800" height="300" archive="cnsapplet.jar">
물론 HTML 파일은 cnsapplet jar 파일과 동일한 디렉토리에 있습니다.
나는 sun method이 other one 내 항아리를 만들기 위해 노력했습니다.
나는이 두 가지 솔루션을 모두 시도했지만 항상 같은 예외가 발생합니다. 나는 또한 BC 라이브러리와 관련한 코드를 삭제하려고 노력했다. 그러나 브라우저가 항아리를 검색 할 때 BC 라이브러리가있는 이전 항아리와 같습니다. – renard
캐싱 문제가 발생합니다. 대부분의 브라우저에서 JAR 파일을 다시 다운로드하지 않아도되므로 테스트하기 전에 브라우저 캐시를 지워야합니다. – Kraylog
그건 문제는 아니었지만 이제는 작동합니다! 고마워, 나는 다음 번에 이것을 염두에 두겠다. – renard