当前位置:  开发笔记 > 编程语言 > 正文

在linux中添加classpath

如何解决《在linux中添加classpath》经验,为你挑选了4个好方法。

我不喜欢设置CLASSPATH.CLASSPATH是一个全局变量,因此它是邪恶的:

如果你在一个脚本中修改它,突然一些java程序将停止工作.

如果你把所有你运行的东西放在那里,那就会变得杂乱无章.

如果两个不同的应用程序使用同一个库的不同版本,则会出现冲突.

没有性能提升,因为CLASSPATH中的库不共享 - 只是共享它们的名称.

如果你把点(.)或任何其他相对路径放在CLASSPATH中,这意味着每个地方都有不同的东西 - 这肯定会引起混淆.

因此,首选方法是为每次运行jvm设置类路径,例如:

java -Xmx500m -cp ".:../somejar.jar:../mysql-connector-java-5.1.6-bin.jar"    "folder.subfolder../dit1/some.xml

如果它变长,标准过程是将其包装在bash或批处理脚本中以节省输入.



1> flybywire..:

我不喜欢设置CLASSPATH.CLASSPATH是一个全局变量,因此它是邪恶的:

如果你在一个脚本中修改它,突然一些java程序将停止工作.

如果你把所有你运行的东西放在那里,那就会变得杂乱无章.

如果两个不同的应用程序使用同一个库的不同版本,则会出现冲突.

没有性能提升,因为CLASSPATH中的库不共享 - 只是共享它们的名称.

如果你把点(.)或任何其他相对路径放在CLASSPATH中,这意味着每个地方都有不同的东西 - 这肯定会引起混淆.

因此,首选方法是为每次运行jvm设置类路径,例如:

java -Xmx500m -cp ".:../somejar.jar:../mysql-connector-java-5.1.6-bin.jar"    "folder.subfolder../dit1/some.xml

如果它变长,标准过程是将其包装在bash或批处理脚本中以节省输入.



2> Yann Ramin..:

除非你有充分的理由,否则总是建议不要破坏性地销毁现有的类路径.

以下行保留现有的类路径并添加到其上.

export CLASSPATH="$CLASSPATH:foo.jar:../bar.jar"


更好的建议是根本不使用CLASSPATH环境变量.改为使用"-cp",并编写包装器脚本或shell别名以节省输入.

3> 小智..:

在Windows和Linux中设置Classpath之间的重要区别是路径分隔符,即";" Windows中的(分号)和Linux中的":"(冒号).还%PATH%用于表示Windows中现有路径变量的值,而${PATH}在Linux中用于相同目的(在bash shell中).以下是在Linux中设置类路径的方法:

export CLASSPATH=${CLASSPATH}:/new/path

但是因为这样的Classpath非常棘手,你可能想知道为什么你的程序在设置正确的Classpath之后仍然无法工作.注意事项:

    -cp选项会覆盖CLASSPATH环境变量.

    清单文件中定义的类路径会覆盖-cpCLASSPATHenvorinment变量.

参考:Classpath如何在Java中工作.



4> David Hanak..:

linux下的路径由冒号(:)分隔,而不是分号(;),因为theatrus在他的示例中正确使用了它.我相信Java尊重这个惯例.

编辑

或者什么安迪建议,你可以使用下面的表格(设置CLASSPATH的命令的持续时间):

CLASSPATH=".:../somejar.jar:../mysql-connector-java-5.1.6-bin.jar" java -Xmx500m ...

哪个更方便你.

推荐阅读
云聪京初瑞子_617
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有