よろしくお願いします。
処理部分をJavaで作り、GUI周りをVBで作成して、VBからJavaのメソッドを呼び出したいと思っています。
適当なサンプルを作り、Shellコマンドなどを使って以下の様にクラスを呼び出してみましたが
上手くいきません(そもそもShellは実行ファイルの呼び出しっぽいので違う様な気はしますが)
lang
1Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click 2 Dim Ret As Integer 3 Ret = Shell("java HashEncoding") 4 5End Sub
Javaで作ったメソッドをVBからの呼び出し方を教えてください。
lang
1import java.security.MessageDigest; 2 3public class HashEncoding { 4 5 private final String HASH_TYPE; 6 7 // コンストラクタ 8 public HashEncoding(){ 9 // ハッシュ関数を"SHA-1"にする 10 this("SHA-1"); 11 } 12 // コンストラクタ( 引数あり ) 13 public HashEncoding( String algorithm ){ 14 HASH_TYPE = algorithm; 15 } 16 17 // 文字列からハッシュ値を生成する 18 public String getStringDigest(byte[] data, int offset, int len) throws Exception { 19 MessageDigest md = MessageDigest.getInstance(HASH_TYPE); 20 21 md.update(data, offset, len); 22 23 return hashByte2String(md.digest()); 24 } 25 // ハッシュ値を16進数文字列に変換 26 private String hashByte2String(byte []hash) { 27 StringBuffer hexString = new StringBuffer(); 28 for (int i = 0; i < hash.length; i++) { 29 if ((0xff & hash[i]) < 0x10) {// < 16(<=F)の場合、1桁になるので、頭に"0"を追加 30 hexString.append("0" + Integer.toHexString((0xFF & hash[i]))); //HEX 31 } else { 32 hexString.append(Integer.toHexString(0xFF & hash[i])); //HEX 33 } 34 } 35 return hexString.toString(); 36 } 37}
上記のクラスをコンパイルして HashEncoding.class を生成しました。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/02/27 10:50