本机调用应用程序如何从JNLP获取返回值?

时间:2016-10-12 08:08:47

标签: java client jnlp

我从本机客户端应用程序(即不是浏览器)启动JNLP java应用程序。当JNLP完成它的任务时,我需要它将一个字符串返回到调用应用程序?我怎样才能做到这一点?是否可以将值返回给调用应用程序 - 或者我是否需要让调用应用程序侦听端口并让JNLP应用程序通过套接字将值写入该端口?

4 个答案:

答案 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(如果可以)或只是一个简单的套接字