自己做了一个jar包,在命令行下输入java -jar d:\aaa\run.jar可以运行。
但是我想在环境变量中注册一下,避免每次运行都要输入jar的绝对路径,不知道怎么弄。
也就是我想在命令行输入java -jar run.jar 即可运行。
但我试了java -jar run.jar结果是“unable to access jarfile run.jar”
再运行 java -classpath -jar run.jar结果是“Exception in thread "main" java.lang.NoClassDefFoundError”:run/jar
很急啊,请大家帮忙啊。

解决方案 »

  1.   

    你在环境变量CLASSPATH中加入这个JAR包的地址即可
      

  2.   


    嫌麻烦的话,直接把它拷到你的%JAVA_HOME%/bin目录里即可。
      

  3.   

    建立环境变量classpath, 其值为该.jar的所在目录
      

  4.   

    如果你把jar文件配置环境变量里。
    可以直接用 java main函数的类 来起动你的程序啊。比如我的jar,在C:\path\TIMECOUNTER.jar;文件夹下。
    我把 C:\path\TIMECOUNTER.jar; 配置在环境变量里。
    我在命令行直接输入 java DownCounter 就可以运行了
    其中 DownCounter 是有main函数的类。
      

  5.   

    类似你的做法,但是我的程序里面需要处理“./”关于当前目录的问题。
    有main函数的类能够运行,但是在单个类中它对"./"的处理可能和运行jar包不一样。
    是不是这样我现在还不得而知,故如果大家有这方面经验,希望不吝赐教。
      

  6.   

    你想把 run.jar加入CLASSPATH,用这种方式java -jar run.jar 启动是不行的。
    因为加入classpath只是把run.jar中的类放入虚拟机,可以直接调用了。
    你用java run.jar中含有main函数的类就可以启动了
    个人意见,希望能帮助你
      

  7.   

    谢谢你的回帖,只要能解决"./"问题用类启动也无妨。
    现在的问题就是在类中硬编码了一个xml文件和程序的相对路径,
    但是当我在命令行运行的时候由于命令行的"./"不一定是程序的当前目录,所以不知道怎么办。
      

  8.   

    谢谢回帖,这个方法我已经试过了,但是不能满足我的要求,
    因为它对"./"的解释是当前命令行切换到的目录,
    而不是java程序所在的目录。
      

  9.   

    写成一个bat文件吧,以后双击就可运行!