虽然它可能被推荐用于编码高级 java 项目的一种用途和 IDE,但我个人更喜欢几乎完全运行命令行(使用 gedit 作为文本编辑器)。所以请不要只告诉我“只需使用 Eclipse!” 什么的:P
我的问题是通过命令在java中创建包的方法是什么。
我不是在谈论打包在命令行中运行的应用程序,而是在谈论在命令行中制作包。我在制作文本文件吗?我在做目录吗?
与此相关的是,如何在不使用 IDE 的情况下链接到相关的库和本机?
我知道我在这里真的很尴尬,但我真的更喜欢控制在命令行中工作。
虽然它可能被推荐用于编码高级 java 项目的一种用途和 IDE,但我个人更喜欢几乎完全运行命令行(使用 gedit 作为文本编辑器)。所以请不要只告诉我“只需使用 Eclipse!” 什么的:P
我的问题是通过命令在java中创建包的方法是什么。
我不是在谈论打包在命令行中运行的应用程序,而是在谈论在命令行中制作包。我在制作文本文件吗?我在做目录吗?
与此相关的是,如何在不使用 IDE 的情况下链接到相关的库和本机?
我知道我在这里真的很尴尬,但我真的更喜欢控制在命令行中工作。
它分为三个部分:(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,则需要使用;
路径分隔。
包只是文件系统上的目录。所以你的 package:com.mycompany.util
对应一个 directory com/mycompany/util
。
在运行和编译等时,您当前的工作目录应该是该顶级目录所在的位置。
要包含库,请在编译和运行时将它们包含在类路径中。例如,创建一个项目目录myproject
,并在该目录下包含您的 java 文件和包myproject/src/
以及您在下面使用的库,myproject/libs/
然后当您当前的工作目录myproject
执行java -cp .:libs/*.jar
或与javac
.
但我建议你考虑使用 ant 或 maven。
Java 包只是一个目录结构,因此创建包的简单方法可以说是终端中的 com.organization.test
mkdir -p com/organization/test
// 创建一个新目录和一个子文件夹作为你的包
$ mkdir -p parent/child
// 进入它:
$ cd parent/child
//创建一个空的java文件
$ touch MyClass.java
//编辑当前文件
$ nano MyClass.java
package child;
public class MyClass {
}
PS:你电脑上的目录结构跟包名有关。这意味着当您编辑 .java 文件时,它需要有一个包声明(您的包),否则您将拥有一个默认包(例如:java.util.*)。