Я уверен, что путь к классам и путь поиска разделяемой библиотеки имеют мало общего с друг другом. Согласно JNI Book (который, по общему признанию, старый), в Windows, если вы не используете системное свойство java.library.path
, DLL должна находиться в текущем рабочем каталоге или в каталоге, указанном в Windows PATH
.
Обновление:
Похоже, что Oracle удалил PDF со своего веб-сайта. Я обновил ссылку выше, чтобы указать на экземпляр PDF, который живет в Техасском университете в Арлингтоне.
Кроме того, вы также можете прочитать HTML-версию Oracle спецификации JNI , Это живет в разделе Java 8 веб-сайта Java и, надеюсь, будет некоторое время.
Обновление 2:
По крайней мере, в Java 8 (я не знаю, t проверены более ранние версии), вы можете сделать:
java -XshowSettings:properties -version
, чтобы найти путь поиска совместно используемой библиотеки. Посмотрите на значение свойства java.library.path
в этом выходе.
Fortran на самом деле не делает массивы указателей. Ваше объявление
type(tSmall), pointer :: var_small(:)
не определяет var_small
как массив указателей на вещи типа tsmall
; скорее, он определяет его как указатель на массив вещей типа tsmall
.
Когда я компилирую ваш код, Intel Fortran дает более полезное сообщение об ошибке
Синтаксис назначения этого указателя данных неверен: в этом контексте ожидается «связанный spec» или «связанное переназначение».
blockquote>, который приводит нас к R735 в стандарте Fortran 2003. Компилятор пытается проанализировать
var_small(1)
не так, как вы хотите, в качестве ссылки на первый элемент в массиве указателей, но либо в bounds-spec-list , либо в переопределении границ -list . Выражение не имеет правильного синтаксиса для и синтаксического анализа.Итак, это касается вопроса о том, что означает ошибка. Что вы с этим поделаете? Это зависит от ваших намерений. Обычное предложение состоит в том, чтобы определить производный тип по этим строкам
type myptr type(tsmall), pointer :: psmall end type myptr
, а затем использовать массив из этих
type(myptr), dimension(:), allocatable :: ptrarray
Лично мне никогда не нравился такой подход и никогда не нужно было его использовать (я пишу очень простые программы). Я ожидаю, что с Fortran 2003 есть и более подходящие подходы, но, не зная ваших намерений, я не решаюсь советоваться.