Câu hỏi của tôi liên quan đến việc bao gồm tệp jar trong đường dẫn. Nó có 2 phần.Không thể thực thi tệp jar mặc dù đã đặt PATH và CLASSPATH
1) Tôi đang cố gắng thực thi file jar weka.jar nằm ở /home/andy/software/weka/weka.jar
PATH điểm biến để file jar này (tức là đến/home/andy/phần mềm /weka/weka.jar) và CLASSPATH cũng vậy.
Tuy nhiên khi tôi cố gắng chạy bình bằng cách sử dụng java -jar weka.jar, tôi gặp lỗi "Không thể truy cập jarfile weka.jar".
Bất kỳ ý tưởng gì đang xảy ra? Tôi đang sử dụng Ubuntu Linux. Tôi nhìn xung quanh trong SO và nó có vẻ như tôi không làm bất cứ điều gì đó là rõ ràng là sai (kể từ khi cả hai PATH và CLASSPATH dường như được thiết lập một cách chính xác).
2) Tôi muốn có thể đặt tất cả các tệp jar của mình vào một thư mục và bao gồm thư mục đó trong đường dẫn của tôi (thay vì bao gồm từng thùng riêng lẻ). Làm thế nào tôi có thể làm điều đó?
Xin cảm ơn trước.
EDIT 1 -> Đây là dòng lệnh của tôi
[email protected]:~$ export CLASSPATH=$CLASSPATH:/home/andy/research/software/weka/weka.jar
[email protected]:~$ echo $CLASSPATH
:/home/andy/research/software/weka/weka.jar
[email protected]:~$ java -jar weka.jar
Unable to access jarfile weka.jar
[email protected]:~$ java weka.jar
Exception in thread "main" java.lang.NoClassDefFoundError: weka/jar
Caused by: java.lang.ClassNotFoundException: weka.jar
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
Could not find the main class: weka.jar. Program will exit.
[email protected]:~$
EDIT 2 -> Tôi đã thay đổi biến PATH để trỏ đến thư mục '/ home/andy/nghiên cứu/phần mềm/WEKA /' và vẫn nhận được 'không thể lỗi jarfile truy cập '
Thử sử dụng '$ HOME' thay vì' ~ '? –
Thực ra tôi đã sử dụng đường dẫn đầy đủ: /home/andy/software/weka/weka.jar. Xin lỗi vì điều đó. – user721975
-jar có nghĩa là đường dẫn lớp sẽ bị bỏ qua – micfra