Мне записали огромную подпрограмму в Фортране, который я должен использовать в программе Java. Как я могу назвать его? Я использую человечность 10.04.
Статья, на которую ссылается @extraneon, - это способ, которым я интегрировал подпрограмму Fortran в программу на Java пару лет назад. Однако, если бы я пытался сделать это снова сегодня, я бы рассмотрел возможность использования функциональной совместимости с C, которая определена в стандарте Fortran 2003 и реализована в последних версиях некоторых компиляторов. Я надеюсь, что смогу скомпилировать подпрограмму Fortran так, чтобы для JNI она выглядела так, как будто написана на C. Таким образом, вы сможете избавиться от обертки C.
И если ваш компилятор не реализует возможности взаимодействия с Си, бросьте его и найдите тот, который реализует.
EDIT: мне пришла в голову еще одна мысль: Если время выполнения подпрограммы Fortran огромно, вам следует подумать об интеграции ее с Java: Java помещает некоторые входные данные в файл, а Fortran модифицирует, чтобы получать входные данные из файла. Затем Java-программа может сделать вызов системы, чтобы запустить Fortran. Результаты передаются обратно тем же способом. Это действительно сложная задача, но вы, вероятно, найдете ее более простой в реализации, чем использование JNI. Более того, вы можете реализовать это в качестве временной меры, пока вы боретесь с JNI, совместимостью и т.д.
Взгляните на этот документ , в нем подробно описан процесс интеграции собственного кода (fortran / c) с Java. Результат, конечно, будет зависеть от платформы.