我目前通过Cloud Foundry在云中部署了一个Spring Boot应用程序,其中一个功能是,当调用特定的控制器端点时,它会在用户的浏览器中打开Google身份验证URL。当我尝试调用端点并启动浏览器时,我收到此错误:
java.io.IOException: Cannot run program "rundll32": error=2, No such file or directory
这在本地工作,但不确定为什么在Java Runtime中部署CF时无法找到该文件。
调用它的代码片段如下:
Runtime runtime = Runtime.getRuntime();
runtime.exec("rundll32 url.dll,FileProtocolHandler " + url);
任何帮助将不胜感激!
谢谢瑞恩
您无法在Cloud Foundry上运行的Java应用程序中执行此操作...
Runtime runtime = Runtime.getRuntime();
runtime.exec("rundll32 url.dll,FileProtocolHandler " + url);
因为它正在尝试使用Windows DLL,并且在CF上运行的应用程序将在Linux Cell上运行。
但有没有办法打开用户的浏览器?
不,不是来自你的应用程序。您的应用程序正在远程服务器上运行。如果远程服务器能够执行诸如在客户端计算机上打开浏览器之类的操作,那么它可以执行各种各样的事情,无论好坏,并且您会遇到严重的安全问题。
如果您在Windows环境中,您的Windows管理员可能会将所有链接到您应用的客户/用户的共享书签/桌面快捷方式推出?这使他们更容易去服务。
希望有所帮助!