[英]Linux javac command erroring on wildcard in classpath
我的PC上运行的是带有Java版本1.6.0_31-b05的 Windows 7,而我的计算机实验室的网络Linux(Fedora,可能是版本13)正在运行Java版本1.6.0_35-b10 。
我有一个C:\\myproject
(et al)目录,其中包含src
, lib
和bin
子目录。
src
文件夹以树结构包含所有与Java包相对应的源代码。 lib
目录包含JAR文件。 我已经在../myproject
al)下的Linux中重新创建了该树。
当我尝试使用以下命令从..\\myproject\\src
目录在DOS中进行编译时,它可以正常运行:
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均可访问computerlab网络位置。 在Linux中,我第一次创建../myproject/src
, ../myproject/lib
和../myproject/bin
目录。 然后,在DOS中,将所需的文件从C
驱动器复制到../myproject/src01
和../myproject/lib01
。 然后,在Linux中,我使用cp -av
命令分别从src01
和lib01
填充src
和lib
。 因此,我认为没有Linux权限问题。
在Linux中,从../myproject/src
位置发出ls ../lib
表示(同级) lib
目录确实包含JAR文件。 我还尝试了Linux javac
命令以及lib
目录的绝对路径; 不开心
类似地,我尝试从-cp
子句中删除引号( "
)标记; -cp
。
问题可能是我正在运行旧版本的Fedora吗? 如果不是,是否有人对问题出在哪里?
在Linux和Windows上,通配符扩展的行为可能有所不同:在类似Unix的系统中,shell负责在将参数传递给可执行文件之前执行通配符扩展。 在Windows上,每个程序都有责任进行通配符扩展(如果有的话)。 有疑问,将javac
替换为echo
可以查看通配符实际上是如何扩展的! 你应该只是使用-sourcepath
选项javac
来定义源位置(如果实际工作也说不清,它必须是10岁以上,因为我最后一次使用的是...)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.