从C#程序启动时,.jar不会运行

时间:2012-03-28 15:30:52

标签: c# java

我正在使用C#为Kinect开发一些程序。 C#没有Java用于模拟击键或鼠标移动的机器人,所以我正在使用Java。目前,我正在创建.jar文件并尝试从C#应用程序运行它们(尽管我怀疑有更好的方法)。我这样做的方法是将这一行放在我的C#代码中:

System.Diagnostics.Process.Start("CMD.exe", java -jar C:\\Users\\Me\\RobotProgram.jar");

这在一个小型的基本C#应用程序中运行良好:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace ConsoleApplication1
{
    class Program
    {
        static void Main(string[] args)
        {
           System.Diagnostics.Process.Start("CMD.exe", "/c java -jar C:\\Users\\Me\\RobotProgram.jar");
        }
    }
}

但是当它在一个使用Kinect相机的更复杂的程序中时,它将无法工作。控制台闪烁说“在初始化VM java / lang / NoClassDefFoundError:java / lang / Object期间出错”。

3 个答案:

答案 0 :(得分:0)

Java项目可能正在工作目录中查找所需的文件。尝试在启动之前设置工作目录。

Directory.SetCurrentDirectory("C:\\Users\\Me");
System.Diagnostics.Process.Start("CMD.exe", "/c java -jar C:\\Users\\Me\\RobotProgram.jar");

答案 1 :(得分:0)

您可能需要指定应用程序的入口点。

以下是一个简单的解释:https://samindaw.wordpress.com/2008/11/04/specifying-the-main-class-to-run-in-a-jar-file-from-command-line/

答案 2 :(得分:0)

您是否在运行复杂程序的环境中正确设置了JAVA_HOME环境变量?

错误指向空/错JAVA_HOME,因为即使找不到基类