【问题标题】:making a java package in the command line在命令行中制作一个java包
【发布时间】:2012-06-13 20:53:02
【问题描述】:

虽然它可能被推荐用于编码高级 Java 项目的一种用途和 IDE,但我个人更喜欢几乎完全运行命令行(使用 gedit 作为文本编辑器)。所以请不要只告诉我“只需使用 eclipse!”什么的:P

我的问题是通过命令在java中创建包的方法是什么。

我不是在谈论打包一个在命令行中运行的应用程序,我是在谈论在命令行中制作一个包。我在制作文本文件吗?我在做目录吗?

与此相关,如何在不使用 IDE 的情况下链接到相关的库和本机?

我知道我在这里真的很尴尬,但我真的更喜欢控制在命令行中工作。

【问题讨论】:

标签: java linux command-line package


【解决方案1】:

// 创建一个新目录和一个子文件夹作为你的包

$ mkdir -p parent/child 

// 进入它:

$ cd parent/child                    

//创建一个空的java文件

$ touch MyClass.java

//编辑当前文件

$ nano MyClass.java

package child; 
 public class MyClass { 
}

PS:你电脑上的目录结构跟包名有关。这意味着当您编辑 .java 文件时,它需要有一个包声明(您的包),否则您将拥有一个默认包(例如:java.util.*)。

【讨论】:

    【解决方案2】:

    Java 包只是一个目录结构,因此创建包的简单方法可以说是终端中的 com.organization.test

    mkdir -p com/organization/test
    

    【讨论】:

      【解决方案3】:

      包只是文件系统上的目录。 所以你的包:com.mycompany.util对应一个目录com/mycompany/util

      在运行和编译等时,您当前的工作目录应该是该顶级目录所在的位置。

      要包含库,请在编译和运行时将它们包含在类路径中。例如,创建一个项目目录myproject,在该目录下有你的 java 文件和包在myproject/src/ 下,以及你在myproject/libs/ 下使用的库 然后当您当前的工作目录为myproject 时,执行java -cp .:libs/*.jar 或与javac 相同。

      但我建议你考虑使用 ant 或 maven。

      【讨论】:

      • 没错...包不过是有组织的目录结构
      【解决方案4】:

      它分为三个部分:(1)创建目录结构; (2) 在java文件中指明包; (3) 编译它。

      例如,如果你想创建包com.mycompany.myproject,那么你需要在你的项目的基础目录中开始,然后:

      (1) 创建目录com/mycompany/myproject

      (2) 在该目录下创建java文件,在其中注明package com.mycompany.myproject

      (3) 编译文件,例如javac -cp . com/mycompany/myproject/*.java

      您可能希望指定不同的输出目录,以免混合源和编译的类。

      如果需要使用外部库(.jar 文件)进行编译,则需要使用-cp-classpath 命令行参数到javac 工具指定,例如

      javac -cp .:some_library.jar:lib/another_library.java com/mycompany/myproject/*.java
      

      将所有外部库放在一个地方可能是个好主意,例如lib 项目主目录的子目录。而且,顺便说一下,上面的javac 命令假定了类unix 环境。如果您使用的是 Windows,则需要使用 ; 进行路径分隔。

      【讨论】:

        【解决方案5】:

        您可以通过使用诸如AntMaven 之类的打包工具在命令行上很好地相处。 Maven 特别方便,因为它是一个更高级别的工具,它已经知道如何构建各种项目类型:命令行应用程序、webapps、库等。它还通过从存储库下载库依赖关系来处理它们。

        【讨论】:

        • 我认为这不是 OP 所追求的。他说的是java源代码中的包,而不是如何打包最终的应用程序。
        • @AleksG - Maven 仍然会有所帮助,因为 OP 需要“链接到相关库”。
        猜你喜欢
        • 2017-08-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-08-19
        • 2013-01-22
        • 1970-01-01
        • 2011-02-22
        相关资源
        最近更新 更多