我们已经使用了一段代码了很长一段时间,它停止了工作。代码有效:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.html$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.html [L]
</IfModule>
我们正在从Websphere 8.5升级到Websphere 9.0,并选择了一个新的JDK。我找到了一些答案(例如Why does Runtime.exec(String) work for some but not all commands?)和文章(例如https://blogs.oracle.com/thejavatutorials/jdk-7u25:-solutions-to-issues-caused-by-changes-to-runtimeexec),这些答案有助于指明使用processBuilder重写代码的方法。我想要找到的是可能导致这种变化的具体改变。是否有新的Java或IBM JDK版本将jdk.lang.Process.allowAmbigousCommands删除为默认设置,或者标签是否更正了拼写而不保留旧版本以实现向后兼容性,或者是什么?
代码用作Runtime.getRuntime.exec(new String[] { "sh", "-c", "/opt/mycommand myparam | sed -ne '/searchstring/p;/searchstring2/q' | tail -1" });
,但现在无法将myparam传递给mycommand,我从mycommand收到一个错误,它需要一个参数。
我已经将代码转换成成功使用了processBuilder,但我很好奇这个问题的根本原因。