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();
    }

如果我直接从它所在的文件夹中直接运行monkeyrunner.bat文件,它就没有问题。但是,如果我尝试使用上面的方法打开它,我会收到以下错误:

线程“主”java.lang.UnsatisfiedLinkError 中的异常:C:\Users\Brad\AppData
\Local\Temp\jline_.dll:无法在 IA 32 位平台上加载 AMD 64 位 .dll
        在 java.lang.ClassLoader$NativeLibrary.load(Native Method)
        在 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.
爪哇:73)
        在 com.android.monkeyrunner.MonkeyRunnerStarter.main(MonkeyRunnerStarter
.java:189)


任何人都知道为什么从 C# 打开进程会导致问题?

如果我尝试运行 Bat 文件正在打开的 Java 文件,我会遇到同样的问题。

编辑:

我想我知道现在的问题是什么:

如果我从 Windows 打开一个 CMD,它会作为 64 位控制台运行。但是由于我的应用程序是 32 位构建的(使用 express),它会加载一个 32 位控制台。但是我看不到可以从一个打开 64 位控制台的方法32位应用

4

1 回答 1

0

解决方法是将应用程序编译为 x86。这可以防止加载错误的 cmd.exe。

于 2013-01-24T20:00:03.873 回答