2012-04-19 5 views
2

JNLP를 사용하여 jar 파일을 시작하려고 할 때 문제가 발생했습니다. 이전에 JNLP를 사용하지 않고 애플릿을 아무 문제없이 시작했습니다. 우리는 jnlp 파일과 함께 같은 디렉토리에 보관되는 3 개의 다른 jar를 시작하려고합니다. 모든 항아리가 다운로드되지만 외부 항아리 중 하나 (즉, 주 항 항이 아닌 항아리)에서 클래스를로드하려고하자마자 classNotFoundError가 표시됩니다. 응용 프로그램이 실행될 때까지 응용 프로그램이 실행되므로 주 병이 실행되는 것처럼 보입니다. 다음과 같이 JNLP 파일은 같습니다클래스를 찾을 수 없음 JNLP를 사용하여 애플릿을 실행할 때 예외가 발생했습니다.

<?xml version="1.0" encoding="UTF-8"?> 
<jnlp spec="1.0+" href="/jars/file.jnlp"> 
<information> 
    <title>Client</title> 
    <vendor>My Vendor</vendor> 
    <description>Description</description> 
    <description kind="short">Desc</description> 
    <offline-allowed /> 
</information> 
<security> 
    <all-permissions /> 
</security> 

<resources> 
    <j2se version="1.6+" /> 
    <jar href="mainJar.jar" main="true" download="eager"/> 
    <jar href="extJar1.jar" main="false" download="eager"/> 
    <jar href="extJar2.jar" main="false" download="eager" /> 
</resources> 
<applet-desc 
    name="MyApp" 
    main-class="path-to-main-class" 
    width="1" 
    height="1"> 
</applet-desc> 
</jnlp> 

애플릿은 다음과 같이 HTML 파일에서 시작됩니다 : 나는 나에게 오류를 제공하지 않는 Janela으로 JNLP 다음 확인했습니다

<applet 
    code="com.mycompany.net.MyMainClass" 
    name="MyApp" 
    archive="/jars/extJar1.jar, /jars/extJar2.jar, /jars/mainJar.jar" 
    id="myId" 
    width="1" 
    height="1" 
    mayscript 
    alt="The java plugin must be installed."> 
      <param name="jnlp_href" value="/jars/file.jnlp"/> 
    Java 1.5 or higher required. 
</applet> 

. jnlp 파일없이 Eclipse에서 애플릿을 실행하기 위해 작동합니다. 또한 javaw에서 jnlp-file을 열어 파일이나 파일에 대한 URL을 지정합니다. 그게 내가 잘못한 HTML이라고 생각하게 만든다. 그러나 이것은 내가 가진 것입니다.

<script src="http://www.java.com/js/deployJava.js"></script> 
<script> 
var attributes = { 
     id:'myId', 
    code:'com.mycompany.net.MyMainClass', 
    width:1, 
    height:1, 
    name:"MyApp" 
}; 
    var parameters = { 
     jnlp_href:"/jars/file.jnlp", 
     archive:"/jars/extJar1.jar, /jars/extJar2.jar, /jars/mainJar.jar", 
    }; 
deployJava.runApplet(attributes, parameters, '1.6'); 

+0

JNLP (JaNeLA 사용에 대한 좋은 호소) 나 애플릿/JS 요소에 아무런 이상이 없음을 볼 수 있습니다. 어떤 브라우저에서 테스트하고 있습니까? –

+0

크롬 및 Firefox. 근본 원인을 찾은 것 같습니다. 일단 jar 파일이 모두 다운로드되면 서버는 나중에 발견되지 않는 클래스를 요청하는 새로운 요청을받습니다. 하지만 jar 폴더가 아닌 jar 폴더에있는 클래스 파일을 찾는 이유는 무엇입니까? – Erik

+0

[Codebase] (http://docs.oracle.com/javase/6/docs/technotes/guides/jweb/applet/codebase_determination.html) jnlp 태그의 param? 그것은 어쨌든 내 대답이었다. – Fuhrmanator

답변

0

내 JNLPs 외부 항아리를 사용하고, 나는 <jnlp> 태그에 codebase="http://example.com/full/path/to/jars/"뿐만 아니라 href="http://example.com/full/path/to/jars/file.jnlp" 정의 : 나는 같은 결과 다음과 같은 자바 스크립트로 실행 시도했습니다.

편집 working example - click the Lancer le planificateur button을 사용해보십시오. Object보다는 Applet 도움이 될 경우

EDIT2 체크 아웃 JNLP as a Applet in HTML page 볼 수 있습니다.