VB.NET(.NET Framework4.5)で作成した画面から、Java(java7)で作成した画面(awt)を起動しようと考えております。
ネットで調べた結果「jni4net」を利用すると実現の可能性があることは分かったのですが、
VBからJavaの呼出しを行うサンプルが見当たらず、「jni4net」をどのように使えばよいのかが分かりません。
C#でもよいのですが、出来るならば使い慣れたVBを使いたいと思っております。
上記の方法をご存知の方がいらっしゃいましたら、ご教授お願い致します。
また「jni4net」の利用に限らず、VBからJavaの呼出しが可能な方法をご存知の方、
もしくは参考になりそうな情報をお持ちの方がいらっしゃいましたら、ご教授お願い致します。
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2015/11/18 05:14
回答2件
0
自己解決
以下のサイトを参考に、解決することが出来ました。
http://stuff.stevenreid.uk/2015/07/02/invoke-java-from-c-using-jni4net-on-windows-x64/
手順は上記のサイトにあるとおりですが、自分で作成したサンプルを載せておきます。
java
1package jp.co.test; 2import java.awt.Frame; 3import java.awt.event.WindowEvent; 4import java.awt.event.WindowListener; 5 6/** 7 C#から呼び出される画面クラス 8/*/ 9public class JavaFrame extends Frame { 10 11 public static void frame(String args) { 12 13 JavaFrame f = new JavaFrame(); 14 f.setTitle(args); 15 f.setSize(500, 300); 16 f.setVisible(true); 17 } 18} 19
C#
1using System; 2using System.Collections.Generic; 3using System.Linq; 4using System.Text; 5using System.Threading.Tasks; 6using System.Windows; 7using System.Windows.Controls; 8using System.Windows.Data; 9using System.Windows.Documents; 10using System.Windows.Input; 11using System.Windows.Media; 12using System.Windows.Media.Imaging; 13using System.Windows.Navigation; 14using System.Windows.Shapes; 15using System.Diagnostics; 16 17using java.io; 18using java.lang; 19using java.util; 20using net.sf.jni4net; 21using net.sf.jni4net.adaptors; 22using jp.co.test; 23 24namespace CsherpJni4netTest 25{ 26 /// <summary> 27 /// MainWindow.xaml の相互作用ロジック 28 /// </summary> 29 public partial class MainWindow : Window 30 { 31 32 public MainWindow() 33 { 34 InitializeComponent(); 35 } 36 37// ボタンイベント 38 private void Button_Click(object sender, RoutedEventArgs e) 39 { 40 41 BridgeSetup bs = new BridgeSetup { Verbose = false }; 42 // JavaFrameクラスのjarの置き場を指定 43 bs.AddAllJarsClassPath(@"C:\pleiades\workspace\JavaFrame\proxygen"); 44 45 try 46 { 47 Bridge.CreateJVM(bs); 48 Bridge.RegisterAssembly(typeof(jp.co.test.JavaFrame).Assembly); 49 50 // staticメソッド起動 51 jp.co.test.JavaFrame.frame(new java.lang.String("java呼出し")); 52 53 // staticでないメソッド起動 54 var bridge = new jp.co.test.JavaFrame(); 55 // JavaFrameクラスに通常のメソッドは定義してないが、「bridge.メソッド名(引数)」で呼び出せる 56 } 57 catch (java.lang.Exception ex) 58 { 59 Debug.WriteLine(ex.Message); 60 Debug.WriteLine(""); 61 Debug.WriteLine(ex.Source); 62 Debug.WriteLine(""); 63 Debug.WriteLine(ex.StackTrace); 64 Debug.WriteLine(""); 65 Debug.WriteLine(ex.TargetSite); 66 Debug.WriteLine(""); 67 Debug.WriteLine(ex.ToString()); 68 } 69 } 70 } 71}
投稿2015/11/19 02:37
総合スコア71
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
0
ランチャーみたいなイメージですか?
外部アプリケーションを起動する、ファイルを関連付けられたソフトで開く
参考になるかわかりませんが
Visual Studio2005 Visual Basic から Javaのクラスメソッドを呼び出す方法を教えて下さい
投稿2015/11/18 05:35
編集2015/11/18 05:39総合スコア3939
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
質問の解決につながる回答をしましょう。 サンプルコードなど、より具体的な説明があると質問者の理解の助けになります。 また、読む側のことを考えた、分かりやすい文章を心がけましょう。