昨天我在stackoverflow中解决了一个问题。但我最终遇到了其他问题,但我会尽力明白:
我在/ home / demo / Desktop / xlsToCsv /目录中有一个项目文件夹,里面是java文件“xlsToCsv.java”和另外一个带有我需要的外部jar的目录,在/ home / demo /桌面/ xlsToCsv /罐。
现在我需要编译并运行我的程序。昨天我问了这个,我运行了一个假设我已经在/ home / demo / Desktop / xlsToCsv /中的命令,命令是:
javac -cp“。:。/ jars / *”xlsToCsv.java
java -cp“。:。/ jars / *”xlsToCsv
问题解决了,我能够在没有任何问题的情况下运行我的程序。但是,我的程序是从根目录运行,即我打开linux终端时的目录,而不需要发出“cd”命令。
因此,当我打开终端时,.java文件的路径是:
的/ home /演示/桌面/ xlsToCsv /
jars文件夹的路径是:
的/ home /演示/桌面/ xlsToCsv /瓶/ *
有人可以向我解释我必须做什么,原因是什么?因为有更多的运行程序,我想知道原因并理解java中的类路径机制。
由于
答案 0 :(得分:1)
避免使用相对类路径。和#34; ./ jars / "使用绝对路径" / home / demo / Desktop / xlsToCsv / jars / "
修改强>
javac -cp "/home/demo/Desktop/xlsToCsv/jars/*" /home/demo/Desktop/xlsToCsv/xlsToCsv.java
java -cp "/home/demo/Desktop/xlsToCsv/:/home/demo/Desktop/xlsToCsv/jars/*" xlsToCsv