Java Web Start getDocumentBase - PullRequest
       15

Java Web Start getDocumentBase

5 голосов
/ 16 июня 2011

Я экспериментирую с Java Web Start.

Я только что написал базовый JApplet, в котором есть метод класса Applet с именем getDocumentBase(). Это возвращает полный URL в местоположение, в котором работает Applet (под Tomcat), т.е. http://myserver:8080/myapp/whateverapplet.jar.

Тем не менее, я ищу что-то похожее с приложением веб-запуска. Мне нужно знать, где он работает. Есть ли что-нибудь, что может дать мне эту информацию?

EDIT

С точки зрения того, где он работает, я имею в виду, если я запускаю веб-запуск из файла JNLP, который я хочу:

http://myserver:8080/myapp

Если я запускаю JAR из папки в сети, я хочу:

\\ сервер \ MyApp

Или, если я запускаю JAR из папки на моей машине, я хочу:

D: \ MyApp

Конец редактирования

Ответы [ 2 ]

5 голосов
/ 16 июня 2011

Полагаю, вы хотите получить URL базы кода из вашего запущенного приложения?Если это так, вы можете использовать этот фрагмент:

final BasicService bs = (BasicService) ServiceManager.lookup(
    "javax.jnlp.BasicService");
final URL codeBase = bs.getCodeBase();

Обратите внимание, что для компиляции этого кода вам понадобится JNLP API (для класса BasicService).

3 голосов
/ 16 июня 2011

Возможно javax.jnlp.BasicService.getCodeBase - это то, что вы ищете.

Возвращает кодовую базу для приложения.Кодовая база либо указывается непосредственно в файле JNLP, либо является местоположением файла JAR, содержащего основной класс приложения. Возвращает: URL с кодовой базой приложения

(BasicService " слабо имитирует AppletContext функциональность ", которая предоставляет вам getDocumentBase()ссылаетесь.)

...