问题标签 [java-package]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 不同项目下的同一个包
我有一个愚蠢的问题,我有两个项目 A 和 B。A 依赖于 B。A 和 B 都有相同的包名为 P。为什么包 P 中的项目 A 和项目 B 下的类可以在不导入的情况下相互使用。
java - 为什么我不能导入 sun 包?
我从https://jdk9.java.net下载了 java 9并将其安装在我的 Windows 10 机器上。
Java 9 有 jshell,我可以用它来评估和学习 java 编程。
一些例子导入sun包,比如sun.audio.*
etc。但是,在jshell中,每次我尝试导入任何sun包时,它都会说sun包不存在。
某些应用程序不适用于 java 9。也许存在不兼容性?
swift - 在 Swift 中实现相当于 Java 的包访问的最简单方法是什么?
我在一个子文件夹中有一组类(以及 Xcode 中的相应组),它们实现了外观模式:应该从这个文件夹外部只使用一个类。如何在 Swift 中实现此访问控制?
在 Java 中,我将外观类声明为公共的,而将其他所有内容都保留为包访问。
在 Swift 中,似乎我应该使用内部访问,为文件夹定义另一个模块。在 Xcode 中,模块对应于构建目标。那么,如何在 Xcode GUI 中为子文件夹定义构建目标?请注意,它应该全部链接到一个二进制文件中。
定义另一个构建目标会在未来增加更多的维护开销吗?我不熟悉 Xcode 构建系统。
java - 无法从用户定义的包中导入类
在这里,我创建了两个包pkg1
和pkg2
. 在pkg1
中,有一个类和另一个类,pkg2
其中导入pkg1
以初始化前一个类,因此它需要导入.class
from pkg1
,这在尝试从此子目录中调用时会产生错误:
error: package pkg1 does not exist
请注意,当pkg1.demoFile1.class
文件是demoFile2.class
从该子目录外部(不同级别,没有限制在 下pkg2
)导入时,程序工作得很好,但是,当这两个包都在同一级别时,每个包都有源代码文件和.class
文件,即,pkg2.demoFile2.class
尝试导入时pkg1.demoFile1.class
编辑#1:文件夹结构: 点击这里
我的感觉是,在.class
从包中创建或导入文件时,分层排序/优先级可能存在一些问题,或者整体定义写错了。请帮忙。
java - 包名中不允许出现“null”
我想创建一个 java 包名称,其中元素之一是单词“null”。
Java 告诉我这不是一个有效的包:
我得到的错误是:
这是在哪里定义的?这是什么原因?
scala - 无法从scala中的包对象中获取抽象类
我有一个包含抽象类的包对象,如下所示:
在另一个文件中,我导入了包:
这使我可以访问DerivedClass
,但由于某种原因,我看不到抽象基类。知道为什么吗?我想创建一个List[BaseClass]
,但它不让我。
java - 当我的主 Java 程序包含外部 java 包时,如何在命令行上编译它?
我是一个相对的 Java 新手,如果这个问题看起来有点基本,我深表歉意。我在这里搜索了高低的答案,但没有找到任何有帮助的东西。
问题:
虽然我能够从 IDE 环境将外部包集成到我的 Java 程序中,但我正在尝试从命令行运行一个非常基本的程序,该程序调用我编写的单独的基本包文件 - 而且我只是在做这一切都是因为我想对包文件如何与 Java 的主程序相关联有一个自下而上的理解。
我的桌面上有一个名为 MyProgram.java 的程序:
仍然在桌面上,然后我有另一个文件夹,我命名为src,在其中我创建了与包名称相对应的必要子文件夹,即./src/org/somepackage - 在这个位置,我有 Human .java 文件,它定义了具有以下内容的 Human 类:
然后我再次在桌面上创建了一个类文件夹,并在命令行上运行以下编译命令:
这运行良好并按预期创建了 ./classes/org/packagename/ 位置中的 Human.class 文件。
但是,我失败的地方是当我尝试在命令行上编译 MyProgram.java 时,即
如您所见,我的类路径包含对 MyProgram.java 文件的当前位置 ( "." ) 的引用,并且它包含对作为基本位置的类文件夹 ( "./classes/" ) 的引用对于 org.somepackage 包,其子文件夹(./classes/org/somepackage/)上可以找到Human.class文件。
在这个阶段,我只是希望 java 引擎将MyProgram.java编译成程序 MyProgram.class - 但是,相反,我得到了一个错误:
MyProgram.java:1:错误:包 org 不存在
我一直按照此处列出的说明进行操作:
https://www3.ntu.edu.sg/home/ehchua/programming/java/J9c_PackageClasspath.html
而且我似乎没有偏离说明 - 但是我无法在 Stackoverflow 或其他任何地方找到关于此编译失败的可能原因的解释。如果有人有想法,我们将非常感谢您的帮助。
谢谢,
java - Java - 使用当前包中的非公共类会导致编译错误
我有以下两个源文件
文件世界.java
文件月亮.java
正如我们所见,它Moon.java
包含两个类:公共Moon
类和非公共Mars
类。
文件位于planets
目录内,下面显示了目录树
现在,如果我尝试从 Windows 命令提示符(我在current-dir
文件夹中)编译
我收到此错误消息:
这很奇怪,因为我知道编译器会在当前包的所有源文件中搜索非公共类。还有 Cay Horstmann 的核心 Java 第 1 卷,第 10 版。在第 192-193 页上说:
[...]您可以从当前包中导入非公共类。这些类可以在具有不同名称的源文件中定义。如果从当前包中导入一个类,编译器会搜索当前包的所有源文件以查看哪个源文件定义了该类。
此外,我尝试使用 Eclipse Oxygen 编写这些文件,并且编译没有问题。但我知道 Eclipse 使用不同的编译器。
为什么javac
编译器会失败?
编辑:我没有设置CLASSPATH
变量。因此,默认情况下编译器会在当前目录中查找。