Простая подпись JAR не будет работать. Подписание JAR - это все о клиенте, который доверяет вашему файлу JAR. Это не мешает клиенту создавать новый JAR из содержимого вашего JAR (с настройками) и запускать его как неподписанный JAR.
Классы в вашем JAR-файле могут пытаться проверить, загружены ли они из надлежащим образом подписанного JAR-файла, но любой такой класс можно настроить, чтобы отключить проверку. Так что это быстрое снижение для решительного злоумышленника ... но, безусловно, не является неоправданным решением.
Обычный способ введения ограничений на одновременных пользователей - это внедрение отдельного менеджера лицензий / системы лицензионных ключей; например FlexLM. (И, конечно, это тоже можно победить, настроив свои классы, чтобы пропустить проверку лицензии.)
Суть в том, что любая схема управления лицензиями для кода, работающего на машинах, управляемых вашим клиентом, может быть побеждена.