C#アプリケーションからJavaアプリケーションを起動するにはどうすればよいですか?C#の起動jar
私はミニクラフトランチャーで作業しています。 C#アプリケーションから任意のjarを起動する一般的な方法はありますか?
C#アプリケーションからJavaアプリケーションを起動するにはどうすればよいですか?C#の起動jar
私はミニクラフトランチャーで作業しています。 C#アプリケーションから任意のjarを起動する一般的な方法はありますか?
あなたは新しいプロセスとしてjarファイルを起動することができます:
はstring appData = Environment.GetEnvironmentVariable("APPDATA");
Process.Start(@"java",
@"-Xms512m -Xmx1024m -cp """ + appData + @"\.minecraft\bin\*"" -Djava.library.path=""" + appData + @"\.minecraft\bin\natives"" net.minecraft.client.Minecraft");
これはjava
は内にあるとみなされ、あなたのPATH
(Javaがインストールされているときには、デフォルトで起こります)。そうでない場合は、javaの絶対パスを使用します。
これはゲームを直接開始しています。ユーザーがどこに置いたかを教えてくれたら、ミニクラフトランチャーを使用できます。 Windowsでは、これはexeファイルなので、直接起動することができます。
また、APPDATAはウィンドウの変数です。 Linuxの場合、パスは$HOME
または~/
です。また、パラメタは全く同じではありません。あなたのユーザーがLinux(またはリンゴ)用にMonoを使ってアプリケーションを実行すると仮定します。私はあなたのためのオプションをテストするモノが手元にありませんが、あなたは、あなたが正しいスタートパスを選択しやすくするために
public static bool IsLinux
{
get
{
int p = (int) Environment.OSVersion.Platform;
return (p == 4) || (p == 6) || (p == 128);
}
}
を使用することができます。上記コードはhereです。上記のサンプルのプロパティはIsLinux
となっていますが、Mono docsからの引用では6
がMac OS X用であると言われています。このプロパティは実際にはIsUnix
と呼ばれるべきです(リンゴの狂信者はそのように説き続けますアップルはWindowsと同じくらいUnixです)。私はこれをテストするための手持ちのMacwareを持っていない、私は学生にそれを残す。
Windows用のタグはありますか? – dwerner
可能な複製http://stackoverflow.com/questions/873809/how-to-execute-a-java-program-from-cおよびhttp://stackoverflow.com/questions/129989/how-to-call- java-code-from-c – walther