Я хотел бы запустить файл JAR с Java Web Start.К сожалению, мне нужно загружать файл JAR динамически (он хранится в Moodle).Следовательно, ссылка на файл JAR не заканчивается на «.jar».На самом деле это вызов PHP-скрипта, который динамически загружает файл JAR.Если я открою ссылку в своем браузере, файл JAR будет загружен.В любом случае, Java Web Start не может загрузить его таким образом.Я получаю следующее исключение:
com.sun.deploy.net.FailedDownloadException: Ressource konnte nicht geladen werden: http://localhost/moodle22/pluginfile.php/39/mod_assignment/my_file на com.sun.deploy.net.DownloadEngine.actionDownload (Неизвестный источник) в com.sun.deploy.net.DownloadEngine.getCacheEntry (Неизвестный источник) в com.sun.deploy.net.DownloadEngine.getCacheEntry (Неизвестный источник) в com.sun.deploy.net.DownloadEngine.getResourceCacheEntry (Неизвестный источник) на com.sun.deploy.net.DownloadEngine.getResourceCacheEntry (неизвестный источник) на com.sun.deploy.net.DownloadEngine.getResource (неизвестный источник) на com.sun.javaws.LaunchDownload $ DownloadTask.call (неизвестный источник) наjava.util.concurrent.FutureTask $ Sync.innerRun (неизвестный источник) на java.util.concurrent.FutureTask.run (неизвестный источник) на java.util.concurrent.ThreadPoolExecutor $ Worker.runTask (неизвестный источник) на java.util.concurrent.ThreadPoolExecutor $ Worker.run (неизвестный источник) на java.lang.Thread.run (неизвестный источник)
И инкапсулированное исключение:
java.io.IOException: недопустимый файл JAR на com.sun.deploy.net.HttpDownloadHelper.download (неизвестный источник) на com.sun.deploy.cache.Cache.downloadResourceToTempFile (неизвестный источник) на com.sun.deploy.cache.Cache.downloadResourceToCache (неизвестный источник) по адресу com.sun.deploy.net.DownloadEngine.actionDownload (неизвестный источник) по адресу com.sun.deploy.net.DownloadEngine.getCacheEntry (неизвестный источник) по адресу com.sun.deploy.net.Загрузите файлEngine.getCacheEntry (неизвестный источник) по адресу com.sun.deploy.net.DownloadEngine.getResourceCacheEntry (неизвестный источник) по адресу com.sun.deploy.net.DownloadEngine.getResourceCacheEntry (неизвестный источник) по адресу com.sun.deploy.net.DownloadEngine.getResource (неизвестный источник) на com.sun.javaws.LaunchDownload $ DownloadTask.call (неизвестный источник) на java.util.concurrent.FutureTask $ Sync.innerRun (неизвестный источник) на java.util.concurrent.FutureTask.run (неизвестный источник) в java.util.concurrent.ThreadPoolExecutor $ Worker.runTask (неизвестный источник) в java.util.concurrent.ThreadPoolExecutor $ Worker.run (неизвестный источник) at java.lang.Thread.run (Неизвестный источник)
Мой файл JNLP:
<?xml version="1.0" encoding="utf-8"?>
<jnlp codebase="http://localhost">
<information>
<title>Test</title>
<vendor>Me</vendor>
<homepage href="http://www.google.com"/>
<description>Test</description>
<offline-allowed/>
</information>
<security>
<all-permissions/>
</security>
<resources>
<java version="1.5+"/>
<jar href="moodle22/pluginfile.php/39/mod_assignment/my_file"/>
</resources>
<application-desc>
<argument>--argument</argument>
</application-desc>
</jnlp>
Если я ссылаюсь на JAR с такой прямой ссылкой, все работает как положено:
<resources>
<java version="1.5+"/>
<jar href="moodle22/mod/assignment/type/something/tmp/test.jar"/>
</resources>