java 中 package 是啥?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java 中 package 是啥?相关的知识,希望对你有一定的参考价值。

理解了import 之后,对package又起了疑问。

这个是怎么使用的?

请用一个简单的例子说明下。

不要给我将理论知识。

因为我头都大 了
求简单的代码例子

package的作用就是 c++ 的 namespace的作用,防止名字相同的类产生冲突。Java 编译器在编译时,直接根据package指定的信息直接将生成的class 文件生成到对应目录下。例如package aaa.bbb.ccc 编译器就将该 .java 文件下的各个类生成到 /aaa/bbb/ccc/ 这个目录下。

Java中的一个package(包)就是一个类库单元,包内包含有一组类,它们在单一的名称空间之下被组织在了一起。这个名称空间就是包名。

扩展资料

编程环境

JDK(Java Development Kit)称为Java开发包或Java开发工具,是一个编写Java的Applet小程序和应用程序的程序开发环境。JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一些Java工具和Java的核心类库(Java API)。不论什么Java应用服务器实质都是内置了某个版本的JDK。主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如,IBM公司开发的JDK,BEA公司的Jrocket,还有GNU组织开发的JDK 。

参考资料:百度百科——JAVA

参考技术A

当前文件所在的文件夹。具体解释如下:

1、当你新建一个Java项目的时候,你会填上Project name,比如项目名叫“baiduzhidao”。注意下面有一拦灰色的“Location”,就代表你这个项目将来会存放在你电脑的那个位置,可以根据需求自己修改地址。

2、然后你可以在左边看到“baiduzhidao”这个项目已经建好了,在这里就是package的意思,“baiduzhidao”就已经是电脑里的一个文件夹了,工具会自动生成这个文件夹。

3、接下来可以去电脑里面去找这个package是不是真的存在,根据图一灰色“Location”的位置去电脑里对应的位置找,看是否真的存在这个文件。

我们会发现这个文件的路径名和文件夹的名字正好相吻合,这就是说,package实际上就代表了一个文件夹。

扩展资料:

Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程  。

Java具有简单性、面向对象、分布式、健壮性、安全性、平台独立与可移植性、多线程、动态性等特点  。Java可以编写桌面应用程序、Web应用程序、分布式系统和嵌入式系统应用程序等  。

参考资料:百度百科-Java



参考技术B

当前文件所在的文件夹。可以这么说

只能说你描述的不好,都不知道你问的是什么

src是存放源码的地方,在src下面有很多package,也就是包。这些包你大考工作目录,其实就是文件夹

package game;这句意思就是当前这个目录是game这个包

import java.util.*;这里是引入jar包里的文件

public class Game 这个就是类了

不用纠结这些东西啊,它只是个目录而已


我的工作区设在E盘,如果打开E盘去找这个文件,目录是

E:\\workspace\\test\\src\\game

就是个文件夹的名字

本回答被提问者和网友采纳
参考技术C

属于包的概念:
包(package)是Java提供的一种区别类的名字空间的机制,是类的组织方式,是一组相关类和接口的集合,它提供了访问权限和命名的管理机制。
Java中提供的包主要有以下3种用途:
1) 将功能相近的类放在同一个包中,可以方便查找与使用。
2) 由于在不同包中可以存在同名类,所以使用包在一定程度上可以避免命名冲突。
3) 在Java中,某次访问权限是以包为单位的。
创建包可以通过在类或接口的源文件中使用 package语句实现,package语句的语法格式如下:
package 包名;
包名:必选,用于指定包的名称,包的名称为合法的 Java标识符。当包中还有包时,可以使用“包1.包2.…….包n”进行指定,其中,包1为最外层的包,而包n则为最内层的包。

参考技术D Java中的一个package(包)就是一个类库单元,包内包含有一组类,它们在单一的名称空间之下被组织在了一起。这个名称空间就是包名。
比如
package fruit;//就表示你在声明该编译单元是名为fruit的类库的一部分

使用 Swift Package Dependency 安装时 SwiftLint 的路径应该是啥

【中文标题】使用 Swift Package Dependency 安装时 SwiftLint 的路径应该是啥【英文标题】:What should be the path of SwiftLint when installed with Swift Package Dependency使用 Swift Package Dependency 安装时 SwiftLint 的路径应该是什么 【发布时间】:2021-11-25 16:40:08 【问题描述】:

我已经安装了带有 Swift Package Dependancy 的 SwiftLint。如手册中所述,我在 Build Phases 中添加了以下 Run 脚本:

if which swiftlint >/dev/null; then
  swiftlint
else
  echo "warning: SwiftLint not installed, download from https://github.com/realm/SwiftLint"
fi

运行我的项目时,我收到警告消息:

警告:未安装 SwiftLint,请从以下位置下载 https://github.com/realm/SwiftLint

所以我猜你的系统找不到 swiftlint 可执行文件。如果安装了 Swift Package Dependency,它在哪里?

【问题讨论】:

artsy.github.io/blog/2019/01/05/its-time-to-use-spm 或 blog.apptekstudios.com/2019/12/spm-xcode-build-tools ? @Larme,不幸的是,我在这些博客中没有找到答案。也许您会考虑创建一个空项目并尝试使用 SPM 安装 SwiftLint。也许它会对你有用,世界其他地方也会受益。 :) 我没有测试,但链接示例似乎很先进。特别是 blog.apptekstudios.com/2019/12/spm-xcode-build-tools 换句话说:不要依赖 XCode SPM 集成,而是使用 Package.swift 以旧方式进行集成,在此添加您需要的依赖项。然后在构建阶段,您可以“检索该“Package.swift”,并使用swift run etc.“运行它”(这将下载链接的包,构建并运行)。这将允许您访问 Swiftlint、SwiftFormat 等,并在构建阶段使用它。它就像一个工具的“辅助项目”。 @Larme SwiftFormat 适用于 SPM,不幸的是 SwiftLint 不适用。 然而,那里给出了解决方案。这也是SwiftFormat在他们的自述文件中给出的解决方案:github.com/nicklockwood/SwiftFormat#xcode-build-phase 【参考方案1】:

你不能,你可以同时。

Xcode 中“集成”的 Swift 包管理器 (SPM) 可用于将代码“嵌入”到您的应用中。 不嵌入可执行文件(如 Swiftlint)。

因此,解决方案是在您的应用旁边创建一个带有 SPM 的“并行”项目。

在以下两个链接中有描述:

It's time to use Swift Package ManagerUsing SPM for Xcode build phase tools

所以这个想法是有一个Package.swiftSwiftlint,构建/运行它,然后它应该启动Swiftlint。 第一次,它将获取代码,构建然后运行。所以可能需要一些时间。

这也是SwiftFormat在他们的ReadMe上给出的解决方案。

在这里应用,这里是文件层次结构。我添加了一个文件夹和一个文件。

MyProject:
.
├── BuildTools
│   └── Package.swift
├── MyProject
│   ├── .swiftlint.yml
│   ├── AppDelegate.swift
│   ├── Assets.xcassets
│   │   ├── AppIcon.appiconset
│   │   │   └── Contents.json
│   │   └── Contents.json
│   ├── Base.lproj
│   │   ├── LaunchScreen.storyboard
│   │   └── Main.storyboard
│   ├── Info.plist
│   ├── SceneDelegate.swift
│   └── ViewController.swift
└── MyProject.xcodeproj

Build Phases 脚本中:

cd BuildTools
SDKROOT=(xcrun --sdk macosx --show-sdk-path)
#swift package update #Uncomment this line temporarily to update the version used to the latest matching your BuildTools/Package.swift file
swift run -c release swiftlint "$SRCROOT" --config ../MyProject/.swiftlint.yml --path ../MyProject

Package.swift 是:

// swift-tools-version:5.5
import PackageDescription

let package = Package(
    name: "BuildTools",
    platforms: [.macOS(.v10_11)],
    dependencies: [
         .package(url: "https://github.com/Realm/SwiftLint", from: "0.44.0")
    ],
    targets: [.target(name: "BuildTools", path: "")]
)

由于我们正在创建另一个项目并且没有利用集成的 Xcode 集成解决方案,因此使用 MintHomeBrew 等解决方案可能会更好。例如,Mint 是一个“完整的 SPM 工具”。如果您有更多工具,将它们集中到一个中可能确实是一个很好的解决方案。

【讨论】:

我给了你积分,因为你很好,花时间写了一个详细的答案,但不幸的是它对我不起作用。我创建了一个新项目,添加了一个 SwiftLint 包,添加了 BuildTools 文件夹和带有上述内容的 Package.swift,并添加了 Build Phases 脚本。运行时,我收到以下错误:没有名为“swiftlint”的可执行产品。您是否遇到过同样的问题,还是顺利进行? 我也必须不时清理派生数据。当我试图理解我链接的教程时,我首先遇到了这个问题。因为我有 Swiftlint 和 Homebrew(我认为),所以我不认为它很难通过它,但我不是 100% 确定(我不想删除它,测试并重新安装它),但是我认为我的解决方案有效。您不会在新项目中添加 Swiftlint 包。

以上是关于java 中 package 是啥?的主要内容,如果未能解决你的问题,请参考以下文章

NoClassDefFoundError是啥

Java的Package到底是啥概念

java中,父路径和子路径是啥?有啥区别?

创建 package.json 时的测试命令是啥?

eclipse project explorer 里 一个Package上有红叉,但Package里的文件都没有红叉,这个红叉是啥原因

这些在 package.json 中使用下划线前缀的属性是啥?