我试图使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程序而不会出现错误?
答案 0 :(得分:2)
此问题的答案是仔细检查,不,三重检查您的文件名。问题在于,使用Visual Studio Code运行程序的方式(即单击运行按钮),任何'
都可能导致严重问题。这是因为VS Code使用'
来引用文件路径。感谢Eliott Frisch向我指出这一点。
对此有两种可能的解决方案:
更改文件夹名称以删除有问题的字符。但是,就我而言,我的文件夹正在运行程序,因此无法执行此操作。这导致我...
创建一个新文件夹,然后将程序移到其中。我认为这是最好的解决方案,因为您通常还是希望为程序提供一个单独的文件夹。
请注意,这对于Java程序非常重要,因为在Visual Studio Code中,您无法使用java name.java
运行Java程序。同样,对于Python程序来说,这 不是 重要,因为它们可以与python name.py
一起运行,因此不需要任何文件名。