vscode-java-debug
vscode-java-debug copied to clipboard
The **wildcard** classPath in `classPaths` configuration only works when `console` is set to `internalConsole`
trafficstars
The wildcard classPath in classPaths configuration only works when console is set to internalConsole. Is this a normal situation?
As the image showed, I add custom classpath of plugins with wildcard for my app to load. Howerver it only works when using internalConsole.
Environment
- Operating System: Windows 10 22H2
- JDK version: Oracle JDK 1.8.0_301
- Visual Studio Code version: v1.87.2
- Java extension version: v0.25.15
- Java Debugger extension version: v0.56.2
Steps To Reproduce
- Create normal java project
- In launch.json add some custom classpath in
classPathsconfiguration with wildcard in path. ie${workspaceFolder}/extraCp/* - Add some jar files in extra classpath
- In launch.json set
consoletointernalConsole. - In Main(), get system classloader and print every urls it loads.
- Run Main() and you can see jar files in extra classpath is loaded.
- In launch.json set
consoletointegratedTerminalorexternalTerminal. - Run Main() again and no jar files in extra classpath is loaded.
When launching the app using the integrated/external terminal, the debugger is only responsible for generating the command line and send it to the terminal to start the app. We do not perform any wildcard scaling. This is equivalent to manually running a Java app in cmd with -cp xyz/*. If Java command line doesn't support wildcards in the classpath argument, the execution will fail.