【问题标题】:javac Foo.java && java Foo in windows vscode terminal not workwindows vscode终端中的javac Foo.java && java Foo不起作用
【发布时间】:2020-08-07 01:06:09
【问题描述】:

我想同时命令javac & java,但它不起作用,它返回以下异常:

At line:1 char:17
+ javac Demo.java && java Demo
+                 ~~
The token '&&' is not a valid statement separator in this version.
    + CategoryInfo          : ParserError: (:) [], ParentContainsErrorRecordException
    + FullyQualifiedErrorId : InvalidEndOfLine

如果我单独运行它的工作

PS D:\git\ITWeiHanDEV\Java> javac Demo.java

PS D:\git\ITWeiHanDEV\Java> java Demo   

ps:

  • 我的版本是java8
  • windows 10 visual studio code terminal

【问题讨论】:

  • 你用的是什么shell和终端?
  • @John windows 10 Visual Studio 代码终端

标签: java windows powershell visual-studio-code


【解决方案1】:

PowerShell 6.x 及更早版本(包括 Windows PowerShell)支持 &&||pipeline chain operators - 它们是 仅在 PowerShell [Core] 7+ 中可用

在 6.x 及更早版本中,您可以模拟&& 的行为,如下所示:

javac Demo.java; if ($LASTEXITCODE -eq 0) { java Demo }

【讨论】:

    【解决方案2】:

    我尝试将 vscode 终端类型更改为 cmd 而不是 powershell integrated console 并在脚本下面运行,它可以工作

    cd "d:\git\ITWeiHanDEV\Java\" && javac Demo.java && java Demo
    

    【讨论】:

    • 是的,Windows 旧版 shell cmd.exe 一直支持 &&||,而 PowerShell 仅从 v7.0 开始支持这些运算符
    猜你喜欢
    • 1970-01-01
    • 2021-10-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-06
    • 2021-09-09
    • 2022-10-17
    • 2021-11-29
    相关资源
    最近更新 更多