概述在受限的(Citrix)环境中从Java调用Java的.bat文件
我不太熟悉的windows桌面编程,我想弄清楚如何处理来自Java的调用.bat文件。 我正在尝试使用Maven运行的桌面Java程序作为jar文件在Citrix虚拟化环境中执行bash脚本。
原来最初的问题是UNCpath导致batch file不被发现,但我已经修改了path,现在我能够findbatch file,但在Citrix帐户中禁用了cmd.exe。我正在使用,而且我担心我无能为力。
这是如何工作的:
1)用户通过program.jar文件启动程序用户检查更新
删除批处理脚本,窗口中的文件夹内容,不提示
windows bat文件等同于bashstring *** 作
用文件名创build一个列表,创builddate,修改date
使用batch file脚本查找string的子string
Shell脚本提供了很多这些东西作为输出,它从来没有做过
2)如果find更新,则下载一个名为program_update.jar的新jar文件,并将名为run_update.bat的batch file复制到主程序目录。
3)在Java程序中,调用以下命令:
Runtime.getRuntime().exec(\”cmd /c pushd \” + filename.installation + \” && start run_update.bat && popd\”);
其中filename.installation是之前已设置的指示主目录安装目录的属性。
run_update.bat运行一个循环,尝试用program_update.jarreplaceprogram.jar ,并在命令提示符中显示成功/失败消息。
当我在Citrix环境中运行时,我收到以下消息:
\’run_update.bat\’ is not recognized as an internal or external command,operable program,or batch file.
The command prompt has been Disabled by your administrator.
此时,我可以点击run_update.bat并成功运行该 *** 作。
通过program.jar调用的自动更新在可以访问cmd的正常windows环境中工作。
我的问题
我的java调用运行cmd /c <commands>根本不工作,当cmd.exe被禁用?
重命名run_update.bat到run_update.cmd会有什么好处吗?
任何替代技术? batch file是必需的,因为jar文件是通过mv命令replace它自己的。
当一个名为nul的文件存在时,nul是如何工作的
如何使用批处理命令在哈德森编译失败
如何切换大容量快捷方式的驱动器?
如何使用windowsbatch file检测(和删除)文件是否为空?
无法从无限循环内部例程返回
总结
以上是内存溢出为你收集整理的在受限的(Citrix)环境中从Java调用Java的.bat文件全部内容,希望文章能够帮你解决在受限的(Citrix)环境中从Java调用Java的.bat文件所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
请登录后查看评论内容