我从本机客户端应用程序(即不是浏览器)启动JNLP java应用程序。当JNLP完成它的任务时,我需要它将一个字符串返回到调用应用程序?我怎样才能做到这一点?是否可以将值返回给调用应用程序 - 或者我是否需要让调用应用程序侦听端口并让JNLP应用程序通过套接字将值写入该端口?
答案 0 :(得分:2)
回答我自己的问题!
我从子进程(JNLP)写入stdout
父母启动子流程
Process::Start
从父
中读取标准输出string ret = process.StandardOutput.ReadToEnd();
Process::WaitForExit();
有人在这看到任何问题吗?
答案 1 :(得分:1)
如果指定了all-permissions
元素,您可以尝试设置一个可以从C#应用程序中读取的环境变量。
在Java中设置环境变量:
System.getenv().put("returnValue", "yourValue");
在C#中读取环境变量:
ProcessStartInfo p = new ProcessStartInfo("start ....");
....
string returnValue = p.EnvironmentVariables["returnValue"];
答案 2 :(得分:1)
我喜欢你的想法使用套接字并认为这可能是一个简单的解决方案。
无法从WebStart应用程序获取返回值。只需查看
中的帮助信息即可javaws --help
没有返回代码可用。 (对不起)
您是否想要使用临时文件而不是套接字?
答案 3 :(得分:1)
它有点陈旧,但我知道这是两个进程link相互通信的现有选择。
我认为解决问题的最简单方法是使用rmi,或jmx(如果可以)或只是一个简单的套接字