Как назвать функциональность C++ от Java

Дельфи использовал свойства, и они нашли свой путь в.NET (потому что это имеет того же архитектора).

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

Свойства не всегда связываются с полями. Они могут быть функциями, настолько возможными, имеют побочные эффекты (но конечно который является очень плохим дизайном).

7
задан Dave Jarvis 31 July 2009 в 04:51
поделиться

4 ответа

Предполагая, что лучшего способа связи нет (SOAP, ICE, сокеты и т. Д.), Я бы вызвал исполняемый файл с помощью Runtime.exec () . JNI можно использовать для прямого интерфейса, но я бы не рекомендовал его. Нет, вы не можете поместить исполняемый файл в банку. Можно, но нельзя запустить, так как оболочка не знает, как его запускать.

5
ответ дан 6 December 2019 в 12:53
поделиться

Вы также можете ознакомиться с Java Native Access API (JNA) .

3
ответ дан 6 December 2019 в 12:53
поделиться

Чтобы ответить на ваш последний вопрос, вы не можете запустить исполняемый файл из своего jar-файла.

Однако вы можете сохранить его в своем jar-файле и извлечь его в временный каталог / файл перед его запуском (проверьте его наличие в первый раз и при необходимости извлеките). Это несколько упростит ваше распространение, поскольку у вас есть только jar для распространения, и гарантирует, что вы запускаете исполняемый файл, который соответствует вашему jarred-коду Java.

2
ответ дан 6 December 2019 в 12:53
поделиться

Если у вас есть доступ к коду и вы хотите «интерактивного» взаимодействия с внешней программой (например, звонить, получать результаты, делать дополнительные звонки), изучите JNI, который позволяет звонить Код C или C ++ из приложения Java путем включения и связывания JNI с вашим приложением C или C ++ с помощью.

См .:

http://en.wikipedia.org/wiki/Java_Native_Interface

http: // www.acm.org/crossroads/xrds4-2/jni.html

Если вам действительно нужно решение типа «запустить приложение и получить результаты», попробуйте Runtime.exec (), который позволяет запускать внешнюю программу. & захватить его вывод.

См .: http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html?page=1

http://www.rgagnon.com/javadetails/java-0014 .html

6
ответ дан 6 December 2019 в 12:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: