【问题标题】:Execute Java from command line从命令行执行 Java
【发布时间】:2010-11-19 14:14:40
【问题描述】:

我的桌面上有一个名为“Stuff”的文件夹,在该文件夹中我有以下内容:

  • Hello.java
  • mail.jar

而 Hello.java 是从 mail.jar 导入的,所以我需要告诉 Hello.java 去寻找 mail.jar。

从 Windows 命令行和 unix 命令行,我如何编译和运行它?

【问题讨论】:

    标签: java unix command-line


    【解决方案1】:

    编译:

    javac -cp .;mail.jar Hello.java
    

    ; 用于 Windows;使用 : 表示 *nix。

    然后运行:

    java -cp .;mail.jar Hello
    

    同样,在 Windows 中使用 ;,在 *nix 中使用 :

    -cp 告诉javacjava 要使用什么classpath,并且由于您的文件位于执行命令的本地目录中,因此您可以使用.对于 Hello 部分和 jar 内路径的 jar 名称。维基百科有一个decent article on classpaths

    请注意,如果您要定期执行此操作,您可能需要设置 CLASSPATH 环境变量,而不是经常使用 -cp 标志。 javajavac 都使用 CLASSPATH 变量。

    对于我自己的开发机器,为了方便起见,我实际上将. 包含在我的CLASSPATH 变量中。这不是我会在生产或构建/测试盒上做的事情,但它对于开发目的非常方便。你也想把你常用的罐子放在里面。

    【讨论】:

    • 这不会让 Java 获取 JAR 文件。
    • @Jesper:谢谢,我想我正在解决你评论的问题。 :-) 我有点忘记罐子了。
    【解决方案2】:

    假设 Hello.java 不包含包声明,在 Windows 上:

    javac -cp mail.jar Hello.java
    java -cp mail.jar;. Hello
    

    在 Unix 平台上的唯一区别是您使用冒号而不是分号分隔类路径的元素:

    java -cp mail.jar:. Hello
    

    【讨论】:

      【解决方案3】:

      按照本教程,您应该可以立即完成:

      Java Compilation

      你也不应该对类路径有任何问题,因为你的类在同一个文件夹中

      【讨论】:

        猜你喜欢
        • 2012-06-23
        • 2013-08-25
        • 2017-10-07
        • 2011-03-04
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多