繁体   English   中英

Linux Javac命令在类路径中的通配符上出错

[英]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)目录,其中包含srclibbin子目录。

  • 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命令分别从src01lib01填充srclib 因此,我认为没有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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM