Java-апплет - как определить, существует ли внешний файл JAR на клиентском компьютере - PullRequest
1 голос
/ 04 октября 2011

Добрый день

Я нахожусь в поиске надежного способа определить, существует ли на клиентском компьютере внешний jar-файл, который собирается использовать мой java-апплет.Прямо сейчас я делаю это в псевдокоде

try 
{
  controller.init()
}
catch Exception(Jar does not exist)
{
  make pretty screen to tell users to download setup file
  fire up browser with link to setup file
}

Однако, исключение, которое бросается в меня, - это UnsatisfiedLinkError, которую я не могу уловить, поскольку это не то, что можно восстановить.По сути, это означает, что у меня «осталось» окно браузера со ссылкой на установочный файл, но нет объяснения, почему он появился.

Конечно, «простое» исправление - это просто добавить кhtml-страница, на которой размещен апплет: «Если Java взорвется, пожалуйста, просто загрузите предложенный установочный файл», однако я бы очень хотел получить программное решение, и именно здесь вы, ребята и девчонки, попадаете на картинку:)

Заранее спасибо за любые ответы на все вопросы.

/ Jeb

1 Ответ

1 голос
/ 04 октября 2011

Вы можете проверить, существует ли банка в пути к классам (System.getProperty("java.class.path")).

Другой подход - посмотреть, сможете ли вы загрузить ресурс файла класса. Скажем, вы собираетесь загрузить com.thirdparty.SomeClass. Затем в любом классе, который вызывает controller.init(), вы можете попробовать

this.getClass (). GetCloassLoader.findResource ( "com.thirdparty.SomeClass.class")

this.getClass().getClassLoader().getResource("com.thirdparty.SomeClass.class")

Если возвращаемое значение не равно нулю, то загрузка класса, надеюсь, будет успешной.

Конечно, классы в jar сами могут зависеть от других классов ... вы должны решить, как вы хотите справиться с этой ситуацией.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...