Java 作为 Process Builder 参数的策略文件
Java Policy file as an argument to Process Builder
我正在使用一种简单的方法来实现自定义策略文件,通过 cmd 实现时效果很好。
List < String > paramsExecute = new ArrayList < String > ();
paramsExecute.add("java");
paramsExecute.add("-cp");
paramsExecute.add(Path);
paramsExecute.add("dummy."+packageName);
paramsExecute.add("-Djava.security.manager");
paramsExecute.add("-Djava.security.policy=C:\full\path\MyPolicyFile.policy");
ProcessBuilder builder = new ProcessBuilder(paramsExecute);
我检查了 classPath.No 抛出异常,但是没有执行策略文件,Bug在哪里?
主要 class 名称之前的参数由 JVM 解释。主要 class 名称后的参数被传递给程序 - JVM 不会查看它们。
这个参数顺序应该有效 - 请注意所有选项都在主要 class 名称之前:
List < String > paramsExecute = new ArrayList < String > ();
paramsExecute.add("java");
paramsExecute.add("-cp");
paramsExecute.add(Path);
paramsExecute.add("-Djava.security.manager");
paramsExecute.add("-Djava.security.policy=C:\full\path\MyPolicyFile.policy");
paramsExecute.add("dummy."+packageName);
我正在使用一种简单的方法来实现自定义策略文件,通过 cmd 实现时效果很好。
List < String > paramsExecute = new ArrayList < String > ();
paramsExecute.add("java");
paramsExecute.add("-cp");
paramsExecute.add(Path);
paramsExecute.add("dummy."+packageName);
paramsExecute.add("-Djava.security.manager");
paramsExecute.add("-Djava.security.policy=C:\full\path\MyPolicyFile.policy");
ProcessBuilder builder = new ProcessBuilder(paramsExecute);
我检查了 classPath.No 抛出异常,但是没有执行策略文件,Bug在哪里?
主要 class 名称之前的参数由 JVM 解释。主要 class 名称后的参数被传递给程序 - JVM 不会查看它们。
这个参数顺序应该有效 - 请注意所有选项都在主要 class 名称之前:
List < String > paramsExecute = new ArrayList < String > ();
paramsExecute.add("java");
paramsExecute.add("-cp");
paramsExecute.add(Path);
paramsExecute.add("-Djava.security.manager");
paramsExecute.add("-Djava.security.policy=C:\full\path\MyPolicyFile.policy");
paramsExecute.add("dummy."+packageName);