在linux中编译和运行java程序,其中包含.java文件的路径和外部jar的路径

时间:2016-02-11 11:13:27

标签: java linux jar javac javacompiler

昨天我在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中的类路径机制。

由于

1 个答案:

答案 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