尽管设置了PATH和CLASSPATH,但无法执行jar文件 [英] Unable to execute jar file despite having PATH and CLASSPATH set

查看:271
本文介绍了尽管设置了PATH和CLASSPATH,但无法执行jar文件的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我的问题是关于在路径中包含jar文件。它有两个部分。

My question is regarding including jar files in path. It has 2 parts.

1)我正在尝试执行位于/home/andy/software/weka/weka.jar中的weka.jar jar文件

1) I am trying to execute weka.jar jar file located in /home/andy/software/weka/weka.jar

PATH变量指向此jar文件(即/home/andy/software/weka/weka.jar),CLASSPATH也是如此。

PATH variable points to this jar file (i.e. to /home/andy/software/weka/weka.jar) and so does CLASSPATH.

但是当我尝试使用java -jar weka.jar运行jar时,出现错误无法访问jarfile weka.jar。

However when I try to run the jar using java -jar weka.jar, I get an error "Unable to access jarfile weka.jar".

任何想法是怎么回事?我在Ubuntu Linux上。我在SO中环顾四周,似乎我没有做任何明显错误的事情(因为PATH和CLASSPATH似乎都设置正确)。

Any ideas what is going on? I am on Ubuntu Linux. I looked around in SO and it seems like I am not doing anything that is obviously wrong (since both PATH and CLASSPATH seem to be set correctly).

2)我希望能够将所有jar文件放在一个目录中并将该目录包含在我的路径中(而不是单独包含每个jar)。我怎么能这样做?

2)I would like to be able to put all my jar files in a single directory and include that directory in my path (instead of including every jar individually). How can I do that?

提前致谢。

编辑1 - >这是我的命令行

EDIT 1 -> Here's my command line

andy@laptop:~$ export CLASSPATH=$CLASSPATH:/home/andy/research/software/weka/weka.jar
andy@laptop:~$ echo $CLASSPATH
:/home/andy/research/software/weka/weka.jar
andy@laptop:~$ java -jar weka.jar
Unable to access jarfile weka.jar
andy@laptop:~$ 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.
andy@laptop:~$ 

编辑2 - >我将PATH变量更改为指向目录'/ home / andy / research / software / weka /'仍然'无法访问jarfile错误'

EDIT 2 -> I changed PATH variable to point to directory '/home/andy/research/software/weka/' and still get 'unable to access jarfile error'

推荐答案

1 )java的-jar选项禁用CLASSPATH。请查看设置Weka的CLASSPATH

1) -jar option of java disables the use of CLASSPATH. Please take a look at Setting the CLASSPATH of Weka

2)类路径条目可以包含基本名称通配符,它被认为等同于指定扩展名为.jar或.JAR的目录中所有文件的列表。例如,类路径条目foo / 指定名为foo的目录中的所有JAR文件。简单地由*组成的类路径条目扩展为当前目录中所有jar文件的列表。看一下设置类路径|了解类路径通配符

2) Class path entries can contain the basename wildcard character , which is considered equivalent to specifying a list of all the files in the directory with the extension .jar or .JAR. For example, the class path entry foo/ specifies all JAR files in the directory named foo. A classpath entry consisting simply of * expands to a list of all the jar files in the current directory. Have a look at Setting the class path|Understanding class path wildcards

这篇关于尽管设置了PATH和CLASSPATH,但无法执行jar文件的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆