【发布时间】:2021-10-21 09:50:53
【问题描述】:
我正在尝试编译一些 java 类,它们需要外部库。
我相信我有正确的,但如果我插入任何一个以外的任何一个,我都会收到一个无效标志错误。
这是我正在运行的命令:
javac -d classdir -classpath "libraries\*.jar" -sourcepath src src\main\java\sc\fiji\cellCounter\*.java
我得到的错误是:
error: invalid flag: libraries\scijava-common-2.83.3.jar
我的库文件夹目前只有两个 .jar 文件,ij-1.53c.jar 和上述错误中的一个。如果我从文件夹中删除 scijava 并运行相同的命令,它会运行但说它丢失了 一堆以 'org.scijava' 开头的包。
什么可能导致无效标志错误? 任何其他帮助编译它都将不胜感激。
【问题讨论】:
-
听起来库文件本身已损坏。你能再得到一份或重新下载吗?也许来自不同的网站?
-
可能需要建立类路径或调整外壳转义以避免通配符。
-
@markspace 如果 jar 已损坏,则会出现加载错误,而不是来自
javac本身的标志错误。 -
尝试明确列出罐子而不是
*jar -
尝试明确列出它们用冒号分隔(在 Windows 上;在 Unix 上用分号)(@D-Dᴙum) 还要检查
where javac——它是否是某个地方的存根,例如ProgramData 还是通用文件?我有时会遇到类似java存根混淆引用的问题,这可能会导致此类问题。