现在已经实现了一部分: 
delphi调用的java的类,该类是独立的,比如
public class DelphiCallJava {
public static String dTest(String args) {
if (args == null) {
return "您没有输入参数!";
} else {
return "您输入的参数:" + args;
}
}
生成一个类A;==================
但是,当在A类中调用了B类的方法时,再通过delphi调用A类中的方法,能找到类,能找到方法,可调用方法时报错了;请问有没有大侠遇到过这种情况?该例子,在[email protected]  密码:delphi  里《delphi调用java类,包》,请高手看一下

解决方案 »

  1.   

    方法里有这两条语句:
    CertStoreFactory.init("d:/test/");
    CertStore key = CertStoreFactory.getCertStore("CCBkey_1100000001");第一条,就可以;-----仅有这条时,调用也是成功的;
    加上第二条,调用该方法 就报错;
      

  2.   

    目的:delphi 调用 java的自带函数 MD5withRSA, 
    大侠们还有其他方法吗?
      

  3.   

    没有用delphi调用过JNI,我想到的是先用C++写一个调JNI的,然后做成DLL,供delphi调用
      

  4.   

    http://wenku.baidu.com/view/92cb6128915f804d2b16c10c.html
      

  5.   

    之所以用jNI调java的类,是因为要用那个算法是java的自带算法。
      

  6.   

    TO  jingtuzhong
    已经看过,单纯类之间的调用可以,只是 
    CertStore key = CertStoreFactory.getCertStore("CCBkey_1100000001");
    这句报错,是不是 delphi不支持 类的返回?可 KeyPairGenerator keyGen = KeyPairGenerator.getInstance("RSA");//设置为RSA算法 
    这样的又支持,实在搞不懂了
      

  7.   

    问题有具体了:
    KeyFactory keyFactory = KeyFactory.getInstance("RSA");
    为什么 加上 
    publicKey = keyFactory.generatePublic(new X509EncodedKeySpec(ConvertBase64.decodeBase64(p_data)));
     就通不过了,javac语句也报错;去掉这句的话,javac能执行,delphi也能调用;
    加上这句,javac报错,delphi也不能调用了;
      

  8.   

    问题可能是这样的:java程序调用到一个.jar包,比如commons-codec-1.5.jar,
    这个包加在环境变量classpath里了,
    那delphi在调用JNI时,是否也加载了该包? 如果没有该怎么加?
      

  9.   

    options[1].optionString:='-Djava.class.path=.;C:\Program Files\Java\jdk1.6.0_10\lib\commons-codec-1.5.jar;解决了