昨天我在stackoverflow中用一个答案解决了一个问题。但我最终遇到了其他问题,但我会努力澄清:
我在/home/demo/desktop/xlstocsv/目录中有一个项目文件夹,其中包含Java文件“xlstocsv.java”和另一个包含外部jar的目录,在/home/demo/desktop/xlstocsv/jars中。
现在我需要编译和运行我的程序。昨天我问了这个问题,我运行了一个命令,假设我已经在/home/demo/desktop/xlstocsv/中,命令是:
javac-cp“..:./jars/*”xlstocsv.java
java-cp“.:./jars/*”xlstocsv
问题解决了,我可以在没有任何问题的情况下运行我的程序。但是,我的程序是从根目录运行的,也就是说,当我打开linux终端时,不需要发出“cd”命令的目录。
所以,当我打开终端时,.java文件的路径是:
/主页/演示/桌面/xlstocsv/
jars文件夹的路径是:
/主页/演示/桌面/xlstocsv/jars/*
有人能给我解释一下我要做什么,为什么?因为运行这个程序的人更多,我想知道原因并理解java中的类路径机制。
谢谢

最佳答案

避免使用相对类路径。和instread of“../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

10-06 01:17