【问题标题】:Strange java lambda error in windows but not linuxwindows中奇怪的java lambda错误但不是linux
【发布时间】:2016-04-16 21:10:25
【问题描述】:

我有一个小程序,它使用一些 lambda 表达式来处理事件。这编译并在我的 linux 机器上完美运行,但在 Windows 中我得到一个“非法开始表达式错误”。我应该用不同的方式写这个吗?这是一个显示结构的 sn-p。出现此错误时,错误消息中的标签指向“e ->”。同样,这在使用 java 版本 1.8.0_77 的 linux 中按预期编译和运行。谢谢你的帮助。我在 Windows 中使用了相同的 java 版本。

rdoChecking.addActionListener(e -> {
        if (e.getActionCommand().equals("disable")){
            rdoChecking.setSelected(false);
            rdoSavings.setSelected(true);
        }else {
            rdoChecking.setSelected(true);
            rdoSavings.setSelected(false);
        }
    });

【问题讨论】:

  • 你在使用 IDE 吗?
  • 是和不是。我最初是在 intellij 中编写的,但与往常一样,我使用 javac 从命令行进行了单独的编译,以仔细检查错误。在 linux 中 - 没有错误;在 Windows 中 - 很多错误。
  • javac -version 有什么用?例如我进入 Windows:javac 1.8.0_77.
  • 另外,我确实在 linux 中创建了一个可执行的 jar 文件,并且能够在 windows 10 上运行它而没有错误。 Windows 会运行它,只是不会编译它。
  • @PaulVargas 和你一样。为了确定,我更新了两台机器。

标签: java linux windows lambda javac


【解决方案1】:

我不确定这是否完全回答了我的问题,但我能够在不更改任何代码的情况下使其工作。我所做的是将代码复制并粘贴到 Windows 上的一个新的 netbeans 项目中,一次一个类,然后从那里重新编译。在 netbeans 中,它编译没有错误,但我在尝试从命令行编译时仍然遇到相同的错误。

【讨论】:

  • 我非常愿意将完整的代码传递给任何想要验证这一点的人。这不是一个很长的程序,但因为它是一个学校作业,我认为最好不要在这里发布它。如果您想尝试自己重现错误,请随时给我发消息。
猜你喜欢
  • 2015-09-27
  • 2012-05-03
  • 1970-01-01
  • 2021-12-02
  • 1970-01-01
  • 1970-01-01
  • 2015-06-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多