在Visual Studio Code中运行Java程序时遇到问题

时间:2020-09-08 22:47:20

标签: java visual-studio-code terminal

我试图使Java程序在Visual Studio Code上运行。我已经下载了Microsoft扩展程序,从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'
>>

如您所见,它进入了一些奇怪的外壳。然后,当我尝试再次运行它时,出现此错误:

>>  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 个答案:

答案 0 :(得分:2)

此问题的答案是仔细检查,三重检查您的文件名。问题在于,使用Visual Studio Code运行程序的方式(即单击运行按钮),任何'都可能导致严重问题。这是因为VS Code使用'来引用文件路径。感谢Eliott Frisch向我指出这一点。

对此有两种可能的解决方案:

  1. 更改文件夹名称以删除有问题的字符。但是,就我而言,我的文件夹正在运行程序,因此无法执行此操作。这导致我...

  2. 创建一个新文件夹,然后将程序移到其中。我认为这是最好的解决方案,因为您通常还是希望为程序提供一个单独的文件夹。

请注意,这对于Java程序非常重要,因为在Visual Studio Code中,您无法使用java name.java运行Java程序。同样,对于Python程序来说,这 不是 重要,因为它们可以与python name.py一起运行,因此不需要任何文件名。