Может ли 32-битный экспортированный файл JAR быть выполнен с использованием 64-битных библиотек Java?
Я экспортирую файл try.jar, используя 32-битные библиотеки Java. На клиентском сайте у меня есть 64-битные библиотеки Java. Может ли try.jar вести себя как 64-битный исполняемый файл?
Например, у меня есть
Runtime rt = Runtime.getRuntime();
s = rt.exec("someExecutable");
двоичный файл someExecutable находится в 64-битной версии, и использование этого кода с 32-битными библиотеками Java, по-видимому, не работает. Моя задача в этой проблеме - экспортировать try.jar с использованием 32-битных библиотек Java (потому что моя среда находится в 32-битной среде) и запускать try.jar с использованием 64-битных библиотек на клиентском сайте. Это правильный подход или какие-либо другие предложения?
когда я запускаю someExecutable напрямую (без участия Java), который является 64-битным на клиентском сайте, он работает нормально (клиентский сайт также 64-битный.). Но когда я использую s = rt.exec("someExecutable"); Это не работает. библиотеки java (исполняемые файлы jre, загруженные через java.sun.com) теперь 32-битные как на клиентских сайтах, так и на сайтах разработчиков. Решается ли моя проблема, если я устанавливаю 64-битные библиотеки на сайт клиента, но не на сайт разработки??
3 ответа
Вам понадобится someExecutable
двоичный файл, доступный для архитектуры операционной системы, в которой вы хотите запустить свою программу.
На самом деле это не имеет ничего общего с Java - все, что делает Java, - это работает с базовой операционной системой и пытается запустить команду в строке, которую вы передаете Runtime.exec()
,
Библиотеки Java здесь не проблема. Если хотите exec
SomeExecutable, эта программа должна быть 32-битной для 32-битной среды.
Библиотеки Java не являются 32- или 64-битными, они находятся в Java ByteCode. Таким образом, они могут быть выполнены на любой JVM 64 или 32 точно таким же образом.
В чем проблема, которую вы получаете, когда делаете это?, если вы используете 100% код Java, JRE должен прояснить все остальное.