gpt4 book ai didi

java - Linux javac 命令在类路径中的通配符上出错

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:23:05 25 4
gpt4 key购买 nike

我在我的 PC 上运行 Java 版本 1.6.0_31-b05 的 Windows 7,我计算机实验室的网络 Linux(Fedora,可能是版本 13)运行的是 Java 版本 1.6.0_35- b10.

我有一个 C:\myproject (et al) 目录,包含 srclibbin 子目录。

  • src 文件夹包含树结构中的所有源代码,对应于 java 包。
  • lib 目录包含 JAR 文件。

我在 Linux 中重新创建了树,位于 ../myproject(等)下。

  • 当我尝试在 DOS 中编译时,从 ..\myproject\src 目录,使用下面的命令,它工作正常:

    javac -cp ".;../bin;../lib/*" -d ../bin org/unlv/schillerlab/motif_diversity/step02/*.java
  • 当我尝试在 Linux 中从 ../myproject/src 目录编译时,我收到消息 不正确的类路径:../lib/*:

    javac -cp ".:../bin:../lib/*" -d ../bin org/unlv/schillerlab/motif_diversity/step02/*.java

可从 DOS 和 Linux 访问计算机实验室网络位置。在 Linux 中,我首先创建了 ../myproject/src../myproject/lib../myproject/bin 目录.然后,在 DOS 中,我将必要的文件从我的 C 驱动器复制到 ../myproject/src01../myproject/lib01。然后,在 Linux 中,我使用 cp -av 命令从 src01 填充 srclib >lib01,分别。因此,我认为不存在 Linux 权限问题。

在 Linux 中,从 ../myproject/src 位置发出 ls ../lib 显示(兄弟)lib目录确实包含 JAR 文件。我还尝试了 Linux javac 命令和 lib 目录的绝对路径;没有快乐。
同样,我尝试从 -cp 子句中删除引号 (");没有乐趣。

问题可能是我运行的是旧版本的 Fedora 吗?如果没有,是否有人对问题是什么有一个假设?

最佳答案

通配符扩展在 Linux 上的行为可能与在 Windows 上不同:在 Unixlike 系统中,shell 有责任在将参数传递给可执行文件之前执行通配符扩展;在 Windows 上,它的每个程序都有责任进行通配符扩展(如果有的话)。有疑问用echo 替换javac 看看通配符实际上是如何展开的!而且您应该使用 javac-sourcepath 选项来定义源位置(不知道这是否真的有效,自从我上次上次以来它一定已经 10 多年了用那个……)

关于java - Linux javac 命令在类路径中的通配符上出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18111599/

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