我运行Windows 7与Java版本的通配符示数我的电脑,我的computerlab网络的Linux(Fedora的,可能是版本13)1.6.0_31-B05运行Java版本1.6.0_35 -b10。Linux的javac命令在类路径
我有一个C:\myproject
(et al)目录,其中src
,lib
和bin
子目录。
- 的
src
文件夹包含所有的树结构中的源代码,对应于Java包。 lib
目录包含JAR文件。
我在Linux下重新创建了这个树,在../myproject
(et al)下。
当我尝试在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
computerlab网络位置可从DOS和Linux访问。在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
子句中删除引号("
);没有快乐。
难道问题是我运行的是旧版本的Fedora?如果没有,那么是否有人对这个问题有什么假设?
echo ../ lib/*确实列出了所有的jar文件。另外,考虑到我读过的所有内容,以及该命令在Dos中的工作原理,我认为在Linux javac命令中,指定jar文件目录(即../lib/*)作为classpath参数的一部分应该可行。 – user2661923
在Linux上(至少在Bash中),通配符扩展不会发生在“”内部。回声“../lib/*”不会和echo ../lib/*一样。也就是说,根据文件,它看起来好像任何一种形式都应该起作用。你是否从你的src /目录运行javac? – Sbodd
因此,在Linux中尝试使用引号,_should_(并且)会失败。只是要小心,我只是重试,没有引号: javac -cp。:../ bin:../ lib/* -d ../bin org/unlv/schillerlab/motif_diversity/step02/*。 java 错误的类路径:../lib/* repsonse依然存在。 是的,我从我的src目录运行javac。 – user2661923