Java:Java Packages(Built-in & User-defined)Java包详解

1 Java Packages 介绍

Java 包可划分为两类:

  1. Built-in Packages (packages from the Java API)
  2. User-defined Packages (create your own packages)

在这里插入图片描述


1.1 Built-in Packages

Java API 是一个预编写类库,可以免费使用,包含在 Java开发环境中。该库包含用于管理输入,数据库编程等的组件。该库分为包packages和类classes。这意味着可以导入单个类(及其方法和属性),也可以导入包含属于指定包的所有类的整个包。

  • 要使用库中的类或包,您需要使用import关键字:
import package.name.Class;   // Import a single class
import package.name.*;   	 // Import the whole package

在下面的示例中,java.util 是一个包,而 Scannerjava.util 包的一个类。因示例仅使用java.util 包中Scanner类的一个方法nextLine(),所以可在import java.util.Scanner;import java.util.*;两者中二选一。

import java.util.Scanner;
//import java.util.*;

class MyClass {
  public static void main(String[] args) {
    Scanner myObj = new Scanner(System.in);
    System.out.println("Enter username");

    String userName = myObj.nextLine();
    System.out.println("Username is: " + userName);
  }
}

1.2 User-defined Packages

  • 创建用户自定义包,要使用package关键字,示例代码:
package mypack;
class MyPackageClass {
  public static void main(String[] args) {
    System.out.println("This is my package!");
  }
}

  • 首先,将上述代码保存为MyPackageClass.java,然后编译:
javac MyPackageClass.java

  • 再编译为包:
javac -d . MyPackageClass.java

这会强制编译器创建mypack包。 -d 关键字指定保存类文件的位置。您可以使用任何目录名称,如 c:/user (windows),或者,如果要将包保留在同一目录中,则可以使用点符号 .,如上面的示例所示。
注意:包名应以小写形式编写,以避免与类名冲突。

  • 最后,运行该MyPackageClass.java文件:
java mypack.MyPackageClass


2 多项目管理编译运行(package、jar)

  • 墙裂推荐这篇blog:https://blog.youkuaiyun.com/Xminyang/article/details/124519693?spm=1001.2014.3001.5502
  • 示例简单易懂,包含Java源代码、编译运行的脚本。


3 参考文献

  1. https://www.w3schools.com/java/java_packages.asp
  2. https://www.geeksforgeeks.org/packages-in-java/
  3. https://www.educative.io/edpresso/what-are-java-packages
  4. https://stackoverflow.com/questions/1088509/what-is-the-purpose-of-defining-a-package-in-a-java-file
[root@master conf]# cd /export/server/kafka [root@master kafka]# ./bin/zookeeper-server-start.sh config/zookeeper.properties [2025-12-29 11:40:19,507] INFO Reading configuration from: config/zookeeper.properties (org.apache.zookeeper.server.quorum.QuorumPeerConfig) [2025-12-29 11:40:19,507] WARN config/zookeeper.properties is relative. Prepend ./ to indicate that you're sure! (org.apache.zookeeper.server.quorum.QuorumPeerConfig) [2025-12-29 11:40:19,510] INFO clientPortAddress is 0.0.0.0:2181 (org.apache.zookeeper.server.quorum.QuorumPeerConfig) [2025-12-29 11:40:19,510] INFO secureClientPort is not set (org.apache.zookeeper.server.quorum.QuorumPeerConfig) [2025-12-29 11:40:19,511] INFO autopurge.snapRetainCount set to 3 (org.apache.zookeeper.server.DatadirCleanupManager) [2025-12-29 11:40:19,511] INFO autopurge.purgeInterval set to 0 (org.apache.zookeeper.server.DatadirCleanupManager) [2025-12-29 11:40:19,511] INFO Purge task is not scheduled. (org.apache.zookeeper.server.DatadirCleanupManager) [2025-12-29 11:40:19,511] WARN Either no config or no quorum defined in config, running in standalone mode (org.apache.zookeeper.server.quorum.QuorumPeerMain) [2025-12-29 11:40:19,533] INFO Log4j 1.2 jmx support found and enabled. (org.apache.zookeeper.jmx.ManagedUtil) [2025-12-29 11:40:19,542] INFO Reading configuration from: config/zookeeper.properties (org.apache.zookeeper.server.quorum.QuorumPeerConfig) [2025-12-29 11:40:19,542] WARN config/zookeeper.properties is relative. Prepend ./ to indicate that you're sure! (org.apache.zookeeper.server.quorum.QuorumPeerConfig) [2025-12-29 11:40:19,542] INFO clientPortAddress is 0.0.0.0:2181 (org.apache.zookeeper.server.quorum.QuorumPeerConfig) [2025-12-29 11:40:19,542] INFO secureClientPort is not set (org.apache.zookeeper.server.quorum.QuorumPeerConfig) [2025-12-29 11:40:19,542] INFO Starting server (org.apache.zookeeper.server.ZooKeeperServerMain) [2025-12-29 11:40:19,550] INFO zookeeper.snapshot.trust.empty : false (org.apache.zookeeper.server.persistence.FileTxnSnapLog) [2025-12-29 11:40:19,557] INFO Server environment:zookeeper.version=3.5.8-f439ca583e70862c3068a1f2a7d4d068eec33315, built on 05/04/2020 15:53 GMT (org.apache.zookeeper.server.ZooKeeperServer) [2025-12-29 11:40:19,557] INFO Server environment:host.name=master (org.apache.zookeeper.server.ZooKeeperServer) [2025-12-29 11:40:19,557] INFO Server environment:java.version=1.8.0_241 (org.apache.zookeeper.server.ZooKeeperServer) [2025-12-29 11:40:19,557] INFO Server environment:java.vendor=Oracle Corporation (org.apache.zookeeper.server.ZooKeeperServer) [2025-12-29 11:40:19,557] INFO Server environment:java.home=/export/server/jdk/jre (org.apache.zookeeper.server.ZooKeeperServer) [2025-12-29 11:40:19,558] INFO Server environment:java.class.path=/export/server/kafka/bin/../libs/activation-1.1.1.jar:/export/server/kafka/bin/../libs/aopalliance-repackaged-2.5.0.jar:/export/server/kafka/bin/../libs/argparse4j-0.7.0.jar:/export/server/kafka/bin/../libs/audience-annotations-0.5.0.jar:/export/server/kafka/bin/../libs/commons-cli-1.4.jar:/export/server/kafka/bin/../libs/commons-lang3-3.8.1.jar:/export/server/kafka/bin/../libs/connect-api-2.6.0.jar:/export/server/kafka/bin/../libs/connect-basic-auth-extension-2.6.0.jar:/export/server/kafka/bin/../libs/connect-file-2.6.0.jar:/export/server/kafka/bin/../libs/connect-json-2.6.0.jar:/export/server/kafka/bin/../libs/connect-mirror-2.6.0.jar:/export/server/kafka/bin/../libs/connect-mirror-client-2.6.0.jar:/export/server/kafka/bin/../libs/connect-runtime-2.6.0.jar:/export/server/kafka/bin/../libs/connect-transforms-2.6.0.jar:/export/server/kafka/bin/../libs/hk2-api-2.5.0.jar:/export/server/kafka/bin/../libs/hk2-locator-2.5.0.jar:/export/server/kafka/bin/../libs/hk2-utils-2.5.0.jar:/export/server/kafka/bin/../libs/jackson-annotations-2.10.2.jar:/export/server/kafka/bin/../libs/jackson-core-2.10.2.jar:/export/server/kafka/bin/../libs/jackson-databind-2.10.2.jar:/export/server/kafka/bin/../libs/jackson-dataformat-csv-2.10.2.jar:/export/server/kafka/bin/../libs/jackson-datatype-jdk8-2.10.2.jar:/export/server/kafka/bin/../libs/jackson-jaxrs-base-2.10.2.jar:/export/server/kafka/bin/../libs/jackson-jaxrs-json-provider-2.10.2.jar:/export/server/kafka/bin/../libs/jackson-module-jaxb-annotations-2.10.2.jar:/export/server/kafka/bin/../libs/jackson-module-paranamer-2.10.2.jar:/export/server/kafka/bin/../libs/jackson-module-scala_2.12-2.10.2.jar:/export/server/kafka/bin/../libs/jakarta.activation-api-1.2.1.jar:/export/server/kafka/bin/../libs/jakarta.annotation-api-1.3.4.jar:/export/server/kafka/bin/../libs/jakarta.inject-2.5.0.jar:/export/server/kafka/bin/../libs/jakarta.ws.rs-api-2.1.5.jar:/export/server/kafka/bin/../libs/jakarta.xml.bind-api-2.3.2.jar:/export/server/kafka/bin/../libs/javassist-3.22.0-CR2.jar:/export/server/kafka/bin/../libs/javassist-3.26.0-GA.jar:/export/server/kafka/bin/../libs/javax.servlet-api-3.1.0.jar:/export/server/kafka/bin/../libs/javax.ws.rs-api-2.1.1.jar:/export/server/kafka/bin/../libs/jaxb-api-2.3.0.jar:/export/server/kafka/bin/../libs/jersey-client-2.28.jar:/export/server/kafka/bin/../libs/jersey-common-2.28.jar:/export/server/kafka/bin/../libs/jersey-container-servlet-2.28.jar:/export/server/kafka/bin/../libs/jersey-container-servlet-core-2.28.jar:/export/server/kafka/bin/../libs/jersey-hk2-2.28.jar:/export/server/kafka/bin/../libs/jersey-media-jaxb-2.28.jar:/export/server/kafka/bin/../libs/jersey-server-2.28.jar:/export/server/kafka/bin/../libs/jetty-client-9.4.24.v20191120.jar:/export/server/kafka/bin/../libs/jetty-continuation-9.4.24.v20191120.jar:/export/server/kafka/bin/../libs/jetty-http-9.4.24.v20191120.jar:/export/server/kafka/bin/../libs/jetty-io-9.4.24.v20191120.jar:/export/server/kafka/bin/../libs/jetty-security-9.4.24.v20191120.jar:/export/server/kafka/bin/../libs/jetty-server-9.4.24.v20191120.jar:/export/server/kafka/bin/../libs/jetty-servlet-9.4.24.v20191120.jar:/export/server/kafka/bin/../libs/jetty-servlets-9.4.24.v20191120.jar:/export/server/kafka/bin/../libs/jetty-util-9.4.24.v20191120.jar:/export/server/kafka/bin/../libs/jopt-simple-5.0.4.jar:/export/server/kafka/bin/../libs/kafka_2.12-2.6.0.jar:/export/server/kafka/bin/../libs/kafka_2.12-2.6.0-sources.jar:/export/server/kafka/bin/../libs/kafka-clients-2.6.0.jar:/export/server/kafka/bin/../libs/kafka-log4j-appender-2.6.0.jar:/export/server/kafka/bin/../libs/kafka-streams-2.6.0.jar:/export/server/kafka/bin/../libs/kafka-streams-examples-2.6.0.jar:/export/server/kafka/bin/../libs/kafka-streams-scala_2.12-2.6.0.jar:/export/server/kafka/bin/../libs/kafka-streams-test-utils-2.6.0.jar:/export/server/kafka/bin/../libs/kafka-tools-2.6.0.jar:/export/server/kafka/bin/../libs/log4j-1.2.17.jar:/export/server/kafka/bin/../libs/lz4-java-1.7.1.jar:/export/server/kafka/bin/../libs/maven-artifact-3.6.3.jar:/export/server/kafka/bin/../libs/metrics-core-2.2.0.jar:/export/server/kafka/bin/../libs/netty-buffer-4.1.50.Final.jar:/export/server/kafka/bin/../libs/netty-codec-4.1.50.Final.jar:/export/server/kafka/bin/../libs/netty-common-4.1.50.Final.jar:/export/server/kafka/bin/../libs/netty-handler-4.1.50.Final.jar:/export/server/kafka/bin/../libs/netty-resolver-4.1.50.Final.jar:/export/server/kafka/bin/../libs/netty-transport-4.1.50.Final.jar:/export/server/kafka/bin/../libs/netty-transport-native-epoll-4.1.50.Final.jar:/export/server/kafka/bin/../libs/netty-transport-native-unix-common-4.1.50.Final.jar:/export/server/kafka/bin/../libs/osgi-resource-locator-1.0.1.jar:/export/server/kafka/bin/../libs/paranamer-2.8.jar:/export/server/kafka/bin/../libs/plexus-utils-3.2.1.jar:/export/server/kafka/bin/../libs/reflections-0.9.12.jar:/export/server/kafka/bin/../libs/rocksdbjni-5.18.4.jar:/export/server/kafka/bin/../libs/scala-collection-compat_2.12-2.1.6.jar:/export/server/kafka/bin/../libs/scala-java8-compat_2.12-0.9.1.jar:/export/server/kafka/bin/../libs/scala-library-2.12.11.jar:/export/server/kafka/bin/../libs/scala-logging_2.12-3.9.2.jar:/export/server/kafka/bin/../libs/scala-reflect-2.12.11.jar:/export/server/kafka/bin/../libs/slf4j-api-1.7.30.jar:/export/server/kafka/bin/../libs/slf4j-log4j12-1.7.30.jar:/export/server/kafka/bin/../libs/snappy-java-1.1.7.3.jar:/export/server/kafka/bin/../libs/validation-api-2.0.1.Final.jar:/export/server/kafka/bin/../libs/zookeeper-3.5.8.jar:/export/server/kafka/bin/../libs/zookeeper-jute-3.5.8.jar:/export/server/kafka/bin/../libs/zstd-jni-1.4.4-7.jar (org.apache.zookeeper.server.ZooKeeperServer) [2025-12-29 11:40:19,558] INFO Server environment:java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib (org.apache.zookeeper.server.ZooKeeperServer) [2025-12-29 11:40:19,558] INFO Server environment:java.io.tmpdir=/tmp (org.apache.zookeeper.server.ZooKeeperServer) [2025-12-29 11:40:19,558] INFO Server environment:java.compiler=<NA> (org.apache.zookeeper.server.ZooKeeperServer) [2025-12-29 11:40:19,558] INFO Server environment:os.name=Linux (org.apache.zookeeper.server.ZooKeeperServer) [2025-12-29 11:40:19,558] INFO Server environment:os.arch=amd64 (org.apache.zookeeper.server.ZooKeeperServer) [2025-12-29 11:40:19,558] INFO Server environment:os.version=3.10.0-1160.71.1.el7.x86_64 (org.apache.zookeeper.server.ZooKeeperServer) [2025-12-29 11:40:19,565] INFO Server environment:user.name=root (org.apache.zookeeper.server.ZooKeeperServer) [2025-12-29 11:40:19,566] INFO Server environment:user.home=/root (org.apache.zookeeper.server.ZooKeeperServer) [2025-12-29 11:40:19,566] INFO Server environment:user.dir=/export/server/kafka (org.apache.zookeeper.server.ZooKeeperServer) [2025-12-29 11:40:19,566] INFO Server environment:os.memory.free=498MB (org.apache.zookeeper.server.ZooKeeperServer) [2025-12-29 11:40:19,566] INFO Server environment:os.memory.max=512MB (org.apache.zookeeper.server.ZooKeeperServer) [2025-12-29 11:40:19,566] INFO Server environment:os.memory.total=512MB (org.apache.zookeeper.server.ZooKeeperServer) [2025-12-29 11:40:19,567] INFO minSessionTimeout set to 6000 (org.apache.zookeeper.server.ZooKeeperServer) [2025-12-29 11:40:19,567] INFO maxSessionTimeout set to 60000 (org.apache.zookeeper.server.ZooKeeperServer) [2025-12-29 11:40:19,567] INFO Created server with tickTime 3000 minSessionTimeout 6000 maxSessionTimeout 60000 datadir /tmp/zookeeper/version-2 snapdir /tmp/zookeeper/version-2 (org.apache.zookeeper.server.ZooKeeperServer) [2025-12-29 11:40:19,571] INFO Using org.apache.zookeeper.server.NIOServerCnxnFactory as server connection factory (org.apache.zookeeper.server.ServerCnxnFactory) [2025-12-29 11:40:19,573] INFO Configuring NIO connection handler with 10s sessionless connection timeout, 1 selector thread(s), 2 worker threads, and 64 kB direct buffers. (org.apache.zookeeper.server.NIOServerCnxnFactory) [2025-12-29 11:40:19,575] INFO binding to port 0.0.0.0/0.0.0.0:2181 (org.apache.zookeeper.server.NIOServerCnxnFactory) [2025-12-29 11:40:19,599] INFO zookeeper.snapshotSizeFactor = 0.33 (org.apache.zookeeper.server.ZKDatabase) [2025-12-29 11:40:19,600] INFO Reading snapshot /tmp/zookeeper/version-2/snapshot.b4 (org.apache.zookeeper.server.persistence.FileSnap) [2025-12-29 11:40:19,630] INFO Snapshotting: 0xc7 to /tmp/zookeeper/version-2/snapshot.c7 (org.apache.zookeeper.server.persistence.FileTxnSnapLog) [2025-12-29 11:40:19,670] INFO Using checkIntervalMs=60000 maxPerMinute=10000 (org.apache.zookeeper.server.ContainerManager) [2025-12-29 11:40:29,102] INFO Creating new log file: log.c8 (org.apache.zookeeper.server.persistence.FileTxnLog)
最新发布
12-30
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值