在Visual Studio Code中运行Java程序出现问题。

3

我正在尝试在Visual Studio Code上运行Java程序。我已经下载了微软的扩展程序,从Oracle下载了JKE,现在我正在尝试运行寓言式的“Hello World” Java程序,以确保它可以正常工作。以下是我的程序(我从“入门指南”中获取的,所以应该没问题):

class QuickStart {
    public static void main(final String[] args) {
        System.out.println("Hello, World.");
    }
}

运行时的情况如下:

(my files)>  cd 'c:\Users\Janet\Documents\Matthew's Homeschooling\VSC Programs\APCSA'; & 
'c:\Users\Janet\.vscode\extensions\vscjava.vscode-java-debug-0.28.0\scripts\launcher.bat' 'C:\Program Files\Java\jdk-14.0.2\bin\java.exe' '--enable-preview' '-XX:+ShowCodeDetailsInExceptionMessages' '-Dfile.encoding=UTF-8' '-cp' 'C:\Users\Janet\AppData\Roaming\Code\User\workspaceStorage\5eda06847dc66aa5b01dbd290d4e0d18\redhat.java\jdt_ws\APCSA_a6725e29\bin' 'QuickStart'
>>

你可以看到,它进入了一些奇怪的 shell。然后当我再次尝试运行时,我得到这个错误:

>>  cd 'c:\Users\Janet\Documents\Matthew's Homeschooling\VSC Programs\APCSA'; & 'c:\Users\Janet\.vscode\extensions\vscjava.vscode-java-debug-0.28.0\scripts\launcher.bat' 'C:\Program Files\Java\jdk-14.0.2\bin\java.exe' '--enable-preview' '-XX:+ShowCodeDetailsInExceptionMessages' '-Dfile.encoding=UTF-8' '-cp' 'C:\Users\Janet\AppData\Roaming\Code\User\workspaceStorage\5eda06847dc66aa5b01dbd290d4e0d18\redhat.java\jdt_ws\APCSA_a6725e29\bin' 'QuickStart'
Set-Location : A positional parameter cannot be found that accepts argument 's'.
At line:1 char:2
+  cd 'c:\Users\Janet\Documents\Matthew's Homeschooling\VSC Programs\AP ...
+  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidArgument: (:) [Set-Location], ParameterBindingException
    + FullyQualifiedErrorId : PositionalParameterNotFound,Microsoft.PowerShell.Commands.SetLocationCommand
 
Hello, World.

所以它确实打印出“Hello World.”,但它也同时抛出了一个错误,并且我不得不运行两次。如何只运行一次就能让我的Java程序没有错误?


1
该文件夹包含 ',而脚本使用 ' 引用路径。请将文件夹名称从 Matthew's Homeschooling 更改为其他名称。 - Elliott Frisch
感谢您找到这个错误。有没有办法在不更改文件名的情况下修复这个错误? - M-Chen-3
我已经通过移动文件解决了我的问题。但是有没有办法可以更改脚本用于路径的引号字符? - M-Chen-3
1
@M-Chen-3,真实输出前显示的路径是执行脚本的路径,无法更改,包括调试时指向Python解释器的完整路径和当前文件。但是如果您想要隐藏执行脚本,是可以做到的。 - Molly Wang-MSFT
1个回答

1
这个问题的解决方法是仔细检查,甚至三次检查您的文件名。问题在于,使用Visual Studio Code运行程序(即点击运行按钮)时,任何'都可能导致严重问题。这是因为VS Code使用'引用文件路径。感谢Eliott Frisch向我指出这一点。
有两种可能的解决方案:
  1. 更改文件夹名称以删除有问题的字符。然而,在我的情况下,我的文件夹正在运行程序,所以我不能这样做。这就导致我...
  2. 创建一个新文件夹并将您的程序移动到该文件夹中。在我看来,这是最好的解决方案,因为通常您需要单独的文件夹来存放程序。
请注意,这对Java程序尤其重要,因为在Visual Studio Code中,您无法使用java name.java运行Java程序。同样,对于Python程序来说,这不是重要的,因为这些程序可以使用python name.py运行,因此不需要任何文件名。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接