2016-08-31 1 views
1

Java Web Start를 사용하여 Java 애플릿을 대체하려고하지만 웹 서버에서 직접 또는 내 컴퓨터에서 .jnlp 파일을 직접 실행할 때마다 오류.Java Web Start 사용시 파일을 찾을 수 없음

Java Web Start 시작 화면이 표시되고 기본 진행률 표시 줄이 나타납니다. 다운로드하여 내 항아리를 확인하지만 잠시 후 "응용 프로그램을 시작할 수 없습니다"라는 오류 메시지가 나타납니다.

CouldNotLoadArgumentException[ Could not load file/URL specified: C:\Users\[username]\AppData\Local\Temp\tmp_cache9015150161909242571.tmp] 
    at com.sun.javaws.Main.launchApp(Unknown Source) 
    at com.sun.javaws.Main.continueInSecureThread(Unknown Source) 
    at com.sun.javaws.Main.access$000(Unknown Source) 
    at com.sun.javaws.Main$1.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 
Caused by: java.io.FileNotFoundException: C:\Users\[username]\AppData\Local\Temp\tmp_cache9015150161909242571.tmp (The system cannot find the file specified) 
    at java.io.FileInputStream.open0(Native Method) 
    at java.io.FileInputStream.open(Unknown Source) 
    at java.io.FileInputStream.<init>(Unknown Source) 
    at java.io.FileInputStream.<init>(Unknown Source) 
    at com.sun.javaws.jnl.LaunchDescFactory.buildDescriptor(Unknown Source) 
    at com.sun.javaws.Main.launchApp(Unknown Source) 
    at com.sun.javaws.Main.continueInSecureThread(Unknown Source) 
    at com.sun.javaws.Main.access$000(Unknown Source) 
    at com.sun.javaws.Main$1.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 

나는 tmp_cache 같은 것을 보면 Temp 폴더에 어떤 파일을 볼 수 없습니다. 내가 해봤

<?xml version="1.0" encoding="utf-8"?> 

<jnlp spec="1.0+" 
    codebase="http://localhost:2020/MyServer/applets" 
    href="basicTest.jnlp"> 
    <information> 
     <title>JWS Test</title> 
     <vendor>My Company</vendor> 
    </information> 

    <resources> 
     <j2se version="1.7+" 
      href="http://java.sun.com/products/autodl/j2se"/> 
     <jar href="basicTest.jar" main="true" /> 
    </resources> 

    <application-desc 
     name="Test Name" 
     main-class="main.Entry"> 
    </application-desc> 
    <update check="background"/> 
</jnlp> 

것들 :

  • 내 웹 서버에서 JNLP 파일과 JAR 다운로드 사용 a (작품이 예상대로)
  • 여기

    내 JNLP 파일입니다 새로운 메인 메쉬와 System.out.print() 문 (같은 결과)을 가진 새로운, 베어 본 항아리
  • .jnlp 파일 내에서 href 변경 (다른 오류 메시지는 .jar을 찾을 수 없습니다. , 예상대로. 내 서버 로그 올바르게 메인 클래스 속성 (동일 결과의 값을 변경 404)
  • 등을 통해 실행할 때
  • 중 하나를 올바르게 (일에서이 작업을 다른 example apps 실행) JVM이 결코 시작하지 제안이 보여
  • 내 자바 캐시 및 임시 파일 (동일 결과)

지우기) 파일은 .jnlp 다운로드 실행할 때 완전히 서명되지 항아리가 중요 할 경우 브라우저 또는 궁금하다 (내 병은 현재 자체 서명 않았다 개발 중) 그러나 나는이 경우 다른 오류를 예상 할 것이다.

jar 파일이 한 위치에 다운로드되어 확인 된 것처럼 보이지만 JVM이 파일을 시작하려고 시도 할 때 찾을 수 없습니다. 캐시 위치 충돌이있을 수 있습니까?

+1

어떤 javaws 버전을 사용하고 있습니까? 'jnlp spec = "7.0+"'(코드베이스 비트를 제거한) 시도해 보셨습니까? ''를 사용하여 캐시 문제가 될 수 있는지 확인하려고 했습니까? – assylias

+0

나는 그 제안을 시도했다. 나는 "코드베이스"를 제거하는 것이 조금 도움이되었다고 생각한다. jar 파일이 "높은"보안 요구 사항을 충족하지 못하기 때문에 예외 목록에 "file : /"을 추가하면 응용 프로그램이 하드 드라이브에서 실행됩니다. 하지만 내 사이트에서 다운로드 할 때 여전히 작동하지 않습니다 (jar 및 jnlp에 대한 업데이트 확인을위한 경로가 잘못 되었기 때문에). 지금까지 도움을 주셔서 감사합니다. –

+0

일부 Java 1.7 및 캐시가 엉망인 Java 1.8 버전에는 몇 가지 버그가있었습니다. Java 1.8 최신 버전을 사용하고 있습니까? – assylias

답변

0

이유 중 하나는 JRE 7 이후 보안이 높음 일 수 있습니다. 서명 항아리가 필요합니다.