2

C#からコンソールを実行するJavaアプリケーションを開こうとしています

これを行うための私のコード:

    private void button3_Click(object sender, EventArgs e)
    {

          Process process = new Process();
          process.StartInfo.WorkingDirectory = @"C:\Program Files (x86)\Android\android-sdk\tools\";
          process.StartInfo.FileName = "monkeyrunner.bat";
          process.Start();
    }

モンキーランナー.batファイルをその中のフォルダーから直接実行しても問題ありません。しかし、上記を使用して開こうとすると、次のエラーが発生します。

スレッド"main"java.lang.UnsatisfiedLinkErrorの例外:C:\ Users \ Brad \ AppData
\ Local \ Temp \ jline_.dll:IA32ビットプラットフォームにAMD64ビット.dllをロードできません
        java.lang.ClassLoader $ NativeLibrary.load(ネイティブメソッド)で
        java.lang.ClassLoader.loadLibrary1(不明なソース)で
        java.lang.ClassLoader.loadLibrary0(不明なソース)で
        java.lang.ClassLoader.loadLibrary(不明なソース)で
        java.lang.Runtime.load0(不明なソース)で
        java.lang.System.load(不明なソース)で
        jline.WindowsTerminal.loadLibrary(WindowsTerminal.java:315)で
        jline.WindowsTerminal.initializeTerminal(WindowsTerminal.java:240)で
        jline.Terminal.setupTerminal(Terminal.java:75)で
        org.python.util.JLineConsole。(JLineConsole.java:69)で
        org.python.util.JLineConsole。(JLineConsole.java:53)で
        org.python.util.JLineConsole。(JLineConsole.java:49)で
        com.android.monkeyrunner.ScriptRunner.console(ScriptRunner.java:192)で
        com.android.monkeyrunner.MonkeyRunnerStarter.run(MonkeyRunnerStarter。
java:73)
        com.android.monkeyrunner.MonkeyRunnerStarter.main(MonkeyRunnerStarter
.java:189)


C#からプロセスを開くと問題が発生する理由を誰かが知っていますか?

Batファイルが開いているJavaファイルを実行しようとすると、同じ問題が発生します。

編集:

私は今問題が何であるかを知っていると思います:

WindowsからCMDを開くと、64ビットコンソールとして実行されます。ただし、アプリケーションは32ビット(エクスプレスを使用)で構築されているため、32ビットコンソールをロードします。しかし、64ビットコンソールをから開く方法がわかりません。 32ビットアプリケーション

4

1 に答える 1

0

回避策は、アプリケーションをx86としてコンパイルすることでした。これにより、間違ったcmd.exeが読み込まれるのを防ぎました。

于 2013-01-24T20:00:03.873 に答える