在命令行中制作一个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 命令 )(代码