8

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

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

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

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

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

4

5 回答 5

9

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

例如,如果要创建 package 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,则需要使用;路径分隔。

于 2012-06-10T19:57:56.610 回答
5

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

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

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

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

于 2012-06-10T19:56:03.890 回答
2

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

于 2012-06-10T19:55:15.543 回答
1

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

mkdir -p com/organization/test
于 2016-01-13T10:09:40.777 回答
0

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

$ mkdir -p parent/child 

// 进入它:

$ cd parent/child                    

//创建一个空的java文件

$ touch MyClass.java

//编辑当前文件

$ nano MyClass.java

package child; 
 public class MyClass { 
}

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

于 2020-04-30T21:17:14.160 回答