On Mon, 12 Feb 2024 12:51:50 GMT, Daniel Fuchs <[email protected]> wrote:
>> Would it be possible to change the `createJavaProcessBuilder` method in
>> ProcessTools to include something to check if -cp is already an argument
>> being passed?
>>
>> maybe something like this?
>>
>>
>> if (!noCP && !args.contains("-cp")) {
>> args.add("-cp");
>> args.add(System.getProperty("java.class.path"));
>> }
>
> That's not a bad idea. What I would recommend in that case would be to not do
> anything here - but rather log another issue against
> `ProcessTools.createTestJavaProcessBuilder`.
> Then proceed with this PR without changing anything...
Hello Darragh, Daniel,
As for introducing a new method on `ProcessTools` class, I don't know if it's
needed - I feel that the `ProcessTools` class is already getting too complex
because of the various similarly named methods. I think it might be better to
reuse some of those existing `/test/lib` utility methods to achieve the same,
something like:
final List<String> command = new ArrayList<>();
command.add(JDKToolFinder.getJDKTool("java"));
command.addAll(jdk.test.lib.Utils.prependTestJavaOpts("-cp", classpath,
className, appArgs));
final ProcessBuilder pb = new ProcessBuilder(command);
final OutputAnalyzer outputAnalyzer = ProcessTools.executeCommand(pb);
I haven't tried out this snippet to be sure this works as expected.
I am not suggesting we do this change in this current PR.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/17787#discussion_r1490909855