В настоящее время я пишу на инструменте, основанном на клиентском сервере. Из-за нестабильных IP-адресов моя идея - позволить серверу-приложению компилировать клиентское приложение с правильным IP-адресом сервера.
Шаг за шагом:
Я утверждал, что могу просто распаковать javac (из Java-приложения), затем записать класс в файл (как полную строку), а затем запустить консольную команду, которая использует javac.exe для компиляции исполняемого файла jar. Но, конечно, это не так просто. Моя проблема в том, что я не хочу помещать всю JDK-папку в серверное приложение, просто для компиляции клиента. Кто-нибудь из вас знает, как я могу справиться с этим?
Важно, что мне приходится сражаться с компьютерами, у которых не установлен JDK, только стандартная JRE, у которой на борту нет компилятора (конечно).
Это определенно не лучший способ обойти это. Существует несколько альтернативных подходов, которые были бы намного проще:
Передайте IP-адрес или имя хоста сервера клиентскому приложению в качестве параметра (например, через командную строку). Это не требует никаких изменений для клиента, но потребует, чтобы у вас был какой-то способ передать этот параметр.
Если вы хотите стать действительно умным, потенциально вы можете указать, что имя клиентского приложения содержит IP (например, как шестнадцатеричное значение: клиент, подключенный к 127.0.0.1
можно назвать client-7f000001.jar
). Однако вам нужно было бы убедиться, что он не переименован.
Вставьте текстовый файл, содержащий IP-адрес сервера в файле JAR клиента. Поскольку JAR - это просто ZIP-архив, для этого вам не нужен компилятор.