系统问题无法找到指定的文件

时间:2014-04-21 05:37:10

标签: c#

我遇到“系统无法找到指定文件”的问题

以下是我的代码失败的部分:

var processInfo = new ProcessStartInfo("java", javaParam + " -jar " + jar)
        {
            CreateNoWindow = true,
            UseShellExecute = false,
            RedirectStandardOutput = true,
            RedirectStandardInput = true,
            RedirectStandardError = true,
            StandardErrorEncoding = Encoding.UTF8,
            StandardOutputEncoding = Encoding.UTF8,
            WorkingDirectory = _diretory
        };

        Process = new Process { StartInfo = processInfo };
        Process.Start();

在此图片中。你可以看到“Arguments”和“WorkingDirectory”。我的“craftbukkit.jar”在我的工作目录中。但它无法找到它。 locals http://bumisworld.eu/locals.png

在Visual Studio外部运行时出现错误。

See the end of this message for details on invoking 
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.ComponentModel.Win32Exception (0x80004005): The system cannot find the file specified
   at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo)
   at System.Diagnostics.Process.Start()
   at The_Bukkit_GUI_Project.MinecraftProcess.StartProcess()
   at The_Bukkit_GUI_Project.Form1.Start()
   at The_Bukkit_GUI_Project.Form1.load_Click(Object sender, EventArgs e)
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at Telerik.WinControls.RadControl.OnClick(EventArgs e)
   at Telerik.WinControls.UI.RadButtonBase.buttonElement_Click(Object sender, EventArgs e)
   at Telerik.WinControls.RadItem.OnClick(EventArgs e)
   at Telerik.WinControls.UI.RadButtonItem.OnClick(EventArgs e)
   at Telerik.WinControls.UI.RadButtonElement.OnClick(EventArgs e)
   at Telerik.WinControls.RadItem.DoClick(EventArgs e)
   at Telerik.WinControls.RadItem.RaiseBubbleEvent(RadElement sender, RoutedEventArgs args)
   at Telerik.WinControls.RadElement.RaiseRoutedEvent(RadElement sender, RoutedEventArgs args)
   at Telerik.WinControls.RadItem.RaiseBubbleEvent(RadElement sender, RoutedEventArgs args)
   at Telerik.WinControls.RadElement.RaiseRoutedEvent(RadElement sender, RoutedEventArgs args)
   at Telerik.WinControls.RadElement.DoMouseUp(MouseEventArgs e)
   at Telerik.WinControls.ComponentInputBehavior.OnMouseUp(MouseEventArgs e)
   at Telerik.WinControls.RadControl.OnMouseUp(MouseEventArgs e)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ScrollableControl.WndProc(Message& m)
   at Telerik.WinControls.RadControl.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

但出于某种原因。这适用于我的本地计算机。但这发生在我的远程服务器上。我不知道为什么......所以我正在寻求一些帮助......

1 个答案:

答案 0 :(得分:0)

首先确保已在服务器上安装Java。然后你应该检查以下内容:

如果启动进程,它会在工作目录和PATH环境变量中列出的目录中查找文件名。有可能在您的开发人员计算机上已将Java目录添加到PATH变量中以方便使用。

不是仅将java指定为可执行路径,更稳定的方法是提供要启动的可执行文件的完整路径。

A - 不太干净 - 快速解决这个问题的方法是更改​​服务器上的PATH变量,以便还包含Java目录。不过,我建议以完整路径引用可执行文件,这样就不必更改要运行程序的每台计算机上的PATH变量。