Может ли 32-битный экспортированный файл JAR быть выполнен с использованием 64-битных библиотек Java? - PullRequest
4 голосов
/ 22 августа 2010

Я экспортирую файл 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 ]

4 голосов
/ 22 августа 2010

Java библиотеки здесь не проблема.Если вы хотите exec someExecutable, эта программа должна быть 32-битной для 32-битной среды.

Библиотеки Java не 32- и 64-битные, они находятся в Java ByteCode.Таким образом, они могут быть выполнены на любой JVM 64 или 32 точно таким же образом.

2 голосов
/ 22 августа 2010

Вам понадобится двоичный файл someExecutable, доступный для архитектуры операционной системы, на которой вы хотите запустить свою программу.

На самом деле это не имеет ничего общего с Java - все, что делает Java, - этооперационной системы и пытается запустить команду в строке, которую вы передаете Runtime.exec().

0 голосов
/ 22 августа 2010

В чем проблема, которую вы получаете, когда делаете это ?, если вы используете 100% код Java, JRE должен прояснить все остальные вещи.

...