在命令行中制作一个java包

Posted

技术标签:

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

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

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

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

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

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

【问题讨论】:

“创建一个包”?你的意思是“创建一个JAR”吗?如果是这样,请从文档开始:docs.oracle.com/javase/tutorial/deployment/jar/index.html. 不,罐子很简单:P 我的意思是一个实际的包(事实证明,它只是一个目录...... 【参考方案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】:

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

【讨论】:

我认为这不是 OP 所追求的。他说的是java源代码中的包,而不是如何打包最终的应用程序。 @AleksG - Maven 仍然会有所帮助,因为 OP 需要“链接到相关库”。

以上是关于在命令行中制作一个java包的主要内容,如果未能解决你的问题,请参考以下文章

开发环境Android 命令行中执行 Java 程序 ( IntelliJ IDEA 中创建 Java / Kotlin 工程 | dx 打包 DEX 字节码文件 | dalvikvm 命令 )(代码

*忽略* C++和C#如何在命令行中显示百分比[重复]

在命令行中正确链接库

JAVA程序命令行中有空格问题

干货分享 | 在 Linux 命令行中使用 tcpdump 抓包

windows命令行中java和javacjavap使用详解(java编译命令)