在Linux中的classpath上使用带有多个特定jar的javac(冒号后冒号不会扩展)

前端之家收集整理的这篇文章主要介绍了在Linux中的classpath上使用带有多个特定jar的javac(冒号后冒号不会扩展)前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试通过类似下面的命令编译一个使用两个jar文件(trove和apache commons集合)的 java文件
javac -cp ~/.m2/repository/gnu/trove/trove/3.0.0/trove-3.0.0.jar:~/git-workspace/grid/libs/commons-collections-3.2.1.jar $(find . -name TimeJavaCode.java)

在上面的例子中,公共代码没有被成功包含,并且存在编译错误,我正在使用公共库.如果我颠倒了导入的顺序,那么在我使用trove时会出现编译错误.我已经尝试导出到变量以及单引号和双引号cp字符串无效(在这种情况下,没有一个导出成功,并且存在编译错误的存在和公共).

我已经看过以下的问题:

Setting multiple jars in java classpath

Using multiple .jar with javac

包括两个罐子的正确方法是什么?

解决方法

而不是使用〜,更改为真实路径(即/ home /<您的用户名> / …),它应该按预期工作.

为了澄清,这不是特定于Java的问题,请在shell中尝试:

$echo ~/.bashrc:~/.bashrc

你应该得到类似的东西:

/home/icyrock.com/.bashrc:~/.bashrc

(当然,icyrock.com取代了您的登录信息).第二个〜不会被bash扩展,这就是为什么遇到问题.您期望它扩展到:

/home/icyrock.com/.bashrc:/home/icyrock.com/.bashrc

这就是为什么你有“第一作品,第二作品”的体验.

看一下bash手册:

> http://www.gnu.org/software/bash/manual/bashref.html#Tilde-Expansion

你可以看到这个:

If a word begins with an unquoted tilde character (‘~’),all of the characters up to the first unquoted slash (or all characters,if there is no unquoted slash) are considered a tilde-prefix.

(强调我的),所以只有第一个波浪号被展开,因为第二个波浪号不在词的开头.

原文链接:https://www.f2er.com/linux/395291.html

猜你在找的Linux相关文章