gpt4 book ai didi

c# - 从控制台读取 C# 中的 jar 流

转载 作者:行者123 更新时间:2023-11-30 22:36:21 25 4
gpt4 key购买 nike

我在网上找到了一些代码来从 c# 运行我的 jar(输出到控制台的 true 或 false)并读入它。在我的开发机器上,以下代码工作正常

    private bool hasInformation(String value)
{
try
{

using (Process p = new Process())
{
p.StartInfo = new ProcessStartInfo("java", @" -jar myJarName.jar " + value);
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.UseShellExecute = false;
p.StartInfo.CreateNoWindow = true;
p.Start();
String availableOrNot = p.StandardOutput.ReadToEnd();

p.WaitForExit();
//Trace.WriteLine("data = " + s);

availableOrNot = availableOrNot.Trim();
if (availableOrNot.Equals("true"))
{
return true;
}
return false;
}
}
catch (Exception e)
{
LogWriter.writeToLogFile(e);
}
return false;
}

问题是在我的测试机器上,代码只返回一个空字符串,就好像它在执行之前抛出异常一样。

我不知道还有什么要检查的,因为当我手动执行 jar 文件时,jar 文件在命令行窗口中运行良好,并且没有抛出异常(至少没有被捕获)。所发生的只是我得到一个空字符串,而在我的开发机器上,我得到一个正确或错误的答案。

希望有人可能对可能出现的问题有一些想法,以便我可以进行调查,因为我真的被困住了。

谢谢

编辑:重定向错误消息后,我可以从流中读取错误消息

Unable to access jarfile myJarName.jar\r\n"

最佳答案

根据您发布的新信息,可能是工作目录或 CLASSPATH 环境变量有误。

检查工作目录以查看它是否是您所期望的(我猜它应该与那个 JAR 文件的目录相同),或者设置它:

p.StartInfo.WorkingDirectory = "C:\\path to my JAR file";

或者,设置 CLASSPATH:

p.StartInfo.EnvironmentVariables["CLASSPATH"] = "C:\\.....";

关于c# - 从控制台读取 C# 中的 jar 流,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7062806/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com