0

我正在使用我的 linux 机器在家庭办公室工作,肯定会编写可移植的代码。使用 shell 和 gnumake 并通过编译 java

javac -Xlint:deprecation -Xlint:unchecked --module-path libs/nrjavaserial-4.0.1.jar:libs/jep-3.9.0.jar:libs/commons-beanutils-1.9.4.jar:libs/commons-collections-3.2.2.jar:libs/commons-logging-1.2.jar:src/  src/main/de/name/product/Product.java -d target/classes/

一切都好。现在在办公室使用 Windows 10 但仍然 gnumake,无法正常工作。同样来自 git bash,没有。

作为让它在 gitshell 中运行的第一步,我会很满足。我使用javac 11.0.72.26.0.windows.1

错误(由于与客户有关,我无法完整显示)表明没有 jar 被接受:

 error: cannot find symbol
       NRSerialPort serial = getSingleSerialPort(baudRate);
        ^
  symbol:   class NRSerialPort
  location: class xxx

表明libs/nrjavaserial-4.0.1.jar虽然存在但不被接受并且

 error: cannot find symbol
        } catch(JepException e) {
                ^
  symbol:   class JepException
  location: class XXX

表示libs/jep-3.9.0.jar不接受。请注意,在 linux 上,在普通的 bash shell 上一切正常。

也许Windows的分隔符错误?我一直在想,分隔符在 git bash 上是透明的吗?或只有/但不是:?我尝试了几种组合,但没有成功。

我怀疑一切都很容易......对吧?

4

1 回答 1

0

您猜对了,您需要在 Windows 上使用不同的分隔符。

请参阅https://docs.oracle.com/en/java/javase/13/docs/specs/man/javac.html

在以下选项列表中,path 的参数表示搜索路径,由由平台路径分隔符分隔的文件系统位置列表组成(分号 ; 在 Windows 上,或冒号 : 在其他系统上。)取决于选项,文件系统位置可以是目录、JAR 文件或 JMOD 文件。

如果您想要可移植性、易用性和可维护性,请使用诸如 ant、maven 或 gradle 之类的东西。

于 2020-06-03T07:23:25.767 回答