Ограничить Java-апплет только к одному экземпляру

StackOverflow https://stackoverflow.com/questions/3280027

Вопрос

Я некоторое время использую Stackoverflow, чтобы найти решения для моих вопросов программирования, но для текущего вопроса я не нашел полезного решения. Так что я соединился.

Что было бы хорошим решением для ограничения Java-апплета только к одному экземпляру. Я использую PHP для обслуживания апплета к конечному пользователю, так что это будет вариант.

Но мне гораздо интересно, если я могу ограничить исполнение Java-апплета через самого апплета. Я довольно новичок в Java, поэтому я не знаю, где начать искать такие конструкции.

Любые предложения будут оценены.

как сбоку, " JavaScript только для запуска Одно окно для Java-апплета с заданным URL-адресом "будет решением. Хотя я встраиваю апплет в приложение, которое я строит, и я не очень увлекаюсь всплывающим окном, обслуживающим апплет. .

искренне, Altwouss

Редактировать:

Чтобы уточнить предел экземпляра. Я хотел бы иметь только один апплет, загруженный на машину.

Это было полезно?

Решение

Почему вы не запускаете Socketerver на хорошо известном порту для вашего апплета?

Если открытие этого SocketServer, это может быть связано с тем, что еще один уже работает.Затем вы можете отобразить сообщение, сообщающее так.

Другие советы

If you use Java WebStart, then there is the JNLP SingleInstanceService.

Unfortunately, Java does not support named mutexs for locking across processes. However, you could implement a primitive lock by simply creating a File at a know location with a known name when your applet starts. If the file cannot be created, then you know that one already exists because the application has already started once before. To ensure the file is deleted when the application closes, simple call File.deleteOnExit() method.

Something like:

if(file.createNewFile()) {
    file.deleteOnExit();
} else {
    throw new Exception("Instance already running!");
}

Not a perfect solution and certainly has some issues... But it's probably enough for what you are trying to do. Also could look at that FileLock class which could offer a more robust and appropriate solution.

i am not really sure of this will help or not.. but the first thing that comes my mind is.. Is it possible to make the applet a singleton? sorry this is more as a follow up question then an answer...

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top