gpt4 book ai didi

Cygwin 上的 Java 路径问题

转载 作者:行者123 更新时间:2023-12-03 01:28:05 24 4
gpt4 key购买 nike

我正在尝试使用 native Win32 Java 在 Cygwin 下编译 Java 项目。

在我的计算机上的 /cygdrive/c/jdk/bin 下正确找到了 Java 二进制文件。

以下命令可以正常工作:

javac -d . ./gnu/kawa/util/PreProcess.java

PreProcess.class 文件在 ./gnu/kawa/util/ 中生成。然而尝试调用 Java 却失败了:

CLASSPATH=.:$CLASSPATH java gnu.kawa.util.PreProcess \
%java6 +use:com.sun.net.httpserver +enable:XML \
`sed -e 's|\([^ ]*\)|./\1|' < ./patch-source-list`
Error: Could not find or load main class gnu.kawa.util.PreProcess
...

此命令由 make 调用,这是动态设置 $CLASSPATH 变量的地方。 patch-source-list 只是一个类名列表。类路径中的 : 看起来很可疑,但我不确定如何测试 ; 同时不烦人 sh

我唯一的怀疑是 native Java 正在尝试 gnu\kawa\util\PreProcess,但我认为 cygwin 可以透明地处理该问题。

有什么想法吗?感谢您抽出时间。

最佳答案

另一种选择是使用“:”构建路径,然后使用 cygpath 修复结果。在您的具体情况下,这可能有点过分了,但在一般情况下,您可能引用多个目录,其中一些目录可能被引用为绝对路径而不是相对路径,或者如果您正在使用 cygwin 符号链接(symbolic link),则它更有用.

$ ln -s /cygdrive/c/development/libraries/ ../libs
$ cygpath -pw /cygdrive/c/development/:.:../libs
C:\development\;.;C:\development\libraries\

然后您将像以前一样构建 CLASSPATH 变量,并在最后阶段运行

CLASSPATH="`cygpath -pw "$CLASSPATH"`" java (whatever)

关于Cygwin 上的 Java 路径问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9861623/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com