在Windows重新安装的情况下,我喜欢在其他驱动器中组织代码,Windows驱动器除外。我在这两个地点进行测试。在Windows驱动器中,项目可以正常运行,但另一方面,驱动器D中的项目由于导致错误java.lang.ClassNotFoundException而无法运行。我注意到,如果项目中没有任何库,终端中的命令是'-cp' 'D:\งาน\Java\Project\MyApp\bin' 'com.winrecker.app.App"。这样,项目就可以正常运行,而不会出现任何错误。在此之后,我将.jar库复制到lib文件夹中并再次运行,该项目具有与上面提到的相同的错误。有任何方法可以禁用vscode来生成导致错误的.argfile吗?我试图在.launch.json文件夹中创建.vscode。然后按以下方式添加配置
launch.json
{
"configurations": [
{
"type": "java",
"name": "Launch Game",
"request": "launch",
"mainClass": "com.untitled.game.Game",
"projectName": "Alien Hunter",
"vmArgs": "-Djava.library.path=lib/lwjgl/native/windows",
"shortenCommandLine": "none"
}
]
}settings.json
{
"java.project.sourcePaths": [
"src",
"lib",
"res"
],
"java.project.outputPath": "bin",
"java.project.referencedLibraries": [
"lib/**/*.jar"
]
}再次运行时,该项目可以在Windows驱动器以外的任何驱动器上运行。我很好奇为什么shortenCommandLine和create .argfile会导致项目中的错误,而不是在Windows中。
任何帮助都是非常感谢的。
发布于 2022-04-11 08:01:26
官方文件说:
shortenCommandLine -当项目有长类路径或大VM参数时,启动程序的命令行可能超过操作系统允许的最大命令行字符串限制。此配置项提供了缩短命令行的多种方法。默认为auto。
看起来,D驱动程序中文件夹的路径比C驱动程序中的路径要长,因此Java扩展会自动创建.argfile文件。
https://stackoverflow.com/questions/71681828
复制相似问题