DLL delphi

staroski, boa tarde.

Preciso colocar a dll em algum diretório específico?

Acredito que está dando algum erro ao carregar a minha dll, pois quando coloco breakpoints no main:

package teste_dll_01;
import teste_dll_01.CalculadoraDLL;

public class TESTE_DLL_01 {

 public static void main(String[] args) {	
	System.out.println("Teste Leandro");    
	System.out.println(CalculadoraDLL.INSTANCE.Calcular(1, "+", 2));	        	        
    }

}

Interface:

package teste_dll_01;
/import com.sun.jna.Native;
import com.sun.jna.Pointer;
import com.sun.jna.Structure;
import com.sun.jna.win32.StdCallLibrary;
import java.util.Arrays;
import java.util.List;
/

import com.sun.jna.Library;
import com.sun.jna.Native;

public interface CalculadoraDLL extends Library {
//CalculadoraDLL INSTANCE = (CalculadoraDLL)Native.loadLibrary(“CalculadoraDLL”, CalculadoraDLL.class);
CalculadoraDLL INSTANCE = (CalculadoraDLL)Native.loadLibrary(“CalculadoraDLL”, CalculadoraDLL.class);

public Integer Calcular(float v1, String op, float v2);

public class Teste {		
	public static void main(String[] args) {
		
		CalculadoraDLL calculadora = CalculadoraDLL.INSTANCE;
		float a = 1;
		String op = "+";
		float b = 2;
		
		System.out.println(calculadora.Calcular(a, op, b).toString());
	}
}

}

Consigo debugar normalmente. Porém, quando chamo o método Caulcular da minha interface o debug é finalizado e não exibe erro algum.

Novamente obrigado!

Você tem que passar para a máquina virtual a propriedade java.library.path apontando para o diretório onde sua DLL se encontra.

Renomeie o método de Calcular para calcular, a convenção Java diz que nomes de métodos são em letra minúscula
Muda o retorno do método calcular para int (Integer é uma classe, int é um tipo primitivo)

Coloca um try-catch de Throwable no seu método main para ver qual o erro

public static void main(String[] args) {
    try {
        CalculadoraDLL calculadora = CalculadoraDLL.INSTANCE;
        float a = 1;
        String op = "+";
        float b = 2;
        System.out.println(calculadora.calcular(a, op, b));
    } catch (Throwable t) {
        t.printStackTrace();
    }
}