Использование Java-класса из Delphi - PullRequest
11 голосов
/ 08 июня 2010

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

Есть ли способ использовать его в нативном приложении Delphi?Я пользуюсь Delphi 2009.

Ответы [ 6 ]

4 голосов
/ 08 июня 2010

Более новым решением, чем JNI, является JNA , которое также поддерживает обратные вызовы из (Delphi) DLL.Мне было легко пользоваться.

3 голосов
/ 08 июня 2010

Вы можете попробовать j-interop . Техника, которую я должен принять, состоит в том, чтобы создать оболочку COM бизнес-логики Java и использовать этот COM-сервер из совместимости с Delphi.

Delphi может создать библиотеку типов COM-сервера, и вы можете определить com-сервер, используя эту библиотеку типов. Библиотека типов - это просто оболочка сервера, предоставляющая интерфейс, который будет использоваться кодом Delphi.

Ключ к взаимодействию с различными программными платформами называется "совместимостью".

Вы можете найти это также в .net против win32. Как правило, delphi-код - это win32 (exe или dll), и вы можете создать протокол связи между объектами delphi и сборками .net или байт-кодом Java, используя решения для обеспечения взаимодействия.

2 голосов
/ 08 июня 2010

В Java 6 требуется всего несколько строк кода для написания автономного сервера веб-служб, который затем можно вызвать из Delphi.

небольшое пошаговое руководство с использованием бесплатного NetBeans IDE и Delphi:

другие примеры:

0 голосов
/ 03 ноября 2012

В качестве альтернативы нативному интерфейсу Java для Delphi (JNI) или JNA и полностью предвзятому ответу, Java для Delphi позволяет приложениям Java и Delphi взаимодействовать на объектно-ориентированном уровне с использованием строго типового кода, где ошибки могут быть обнаружены во время компиляции, а не во время выполнения.

0 голосов
/ 08 июня 2010

Встраивать ВМ в нативный код. Это сработало для меня. Пример с c можно найти здесь. http://java.sun.com/docs/books/jni/html/invoke.html

0 голосов
/ 08 июня 2010

Я очень сильно сомневаюсь в этом. Код Delphi компилируется в исполняемый файл, а код Java исполняется виртуальной машиной. Поэтому, если вы не запустите полную виртуальную машину внутри кода Delphi, я не вижу способа легко включить логику.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...