问题标签 [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 - 使用单独提交的 Java 包提交可执行文件
我的应用程序有 4 个 Java 包。
所有软件包都依赖于实用程序。小部件包依赖于接口包。
这些实用程序可能对其他应用程序很有价值,因此它应该是一个自己的包。分析不依赖于小部件和界面,因此分析应该是它自己的一个包。接口可能会改变,因为它接口的组织可能会倒闭,所以接口应该是它自己的一个包。
这只是一个产生一个可执行文件的应用程序。
在这个组织的基础上,我对每个包进行提交,而不是对可执行文件进行提交。我想开始提交可执行文件。一种方法是将可执行文件提交到一个新的 git 存档中,而不与源代码有任何联系,但是拥有一个可执行文件并且没有正式的方式将其与源代码联系起来听起来很鲁莽。
另一种听起来有点低效的方法是简单地启动一个新的 git 存档,“添加”所有 4 个 Java 包的源代码,每个包都有许多 Java 文件,并“添加”可执行文件。这似乎有点奇怪,因为它没有尊重 4 个现有的 git 档案,这些档案已经知道它们各自的源代码集合。
将这 4 个包与它们的通用可执行文件绑定在一起的正确方法是什么?
我使用 SmartGit 进行例行提交,并使用命令行 git 进行还原。如果这个查询的解决方案有必要,我愿意停止使用 SmartGit。
java - 在 Eclipse IDE 中运行没有包的 Java 代码
我想运行我的代码而不在 java eclipse IDE 中创建一个包。
但是当我这样做时,它显示错误:
java - 一个 Java 模块可以导出一个包,其名称是另一个模块的包的子包吗?
所以我知道,在 Java 9 模块(Project Jigsaw)中,不允许拆分包。也就是说,以下模块不能既导出具有相同名称的包,也不能在运行时同时使用:
模块 1
模块 2
不允许(或者,至少,它们不能同时运行)。但我不清楚子包是如何发挥作用的。如果一个模块导出包com.example.foo
,是否可以导出另一个包com.example.foo.bar
?例如,我想做以下事情:
模块 1
模块 2
模块 3
这是允许的吗?所有三个模块都可以在运行时一起使用吗?com.example.foo
或者模块导出这一事实是否会com.example.foo
阻止另一个模块 ( com.example.foo.impl1
) 导出具有子包名称 ( com.example.foo.impl1
) 的包?
java - 如何在保留封装的同时将代码逻辑组织到包中
这是一个概念问题。
我通常按逻辑将代码组织在包中。例如:数学运算进入my.package.math
或业务逻辑进入my.package.business
等等。
在这些日子里,我有一个疑问,我想分享关于java中包可见性强加的约束。
让我展示一些代码来更好地解释我的情况:我有以下包结构:
和以下代码:
问候服务.java
RandomGreetings.java
主.java
正如我向您展示的那样,此代码无法编译,因为该类RandomGreetings
是包可见的,这意味着 GreetingsService 无法实例化它。这个问题可以在课堂上公开RandomGreetings
解决:
但RandomGreetings
对我来说,这是一个我想保持封装而不公开可见的实现。在这种情况下,世界(任何导入我可能生成的 jar 工件的人)都能够看到并调用该类,这不是我想要的。
另一种可能的解决方案是GreetingsService
在 RandomGreetings 的同一级别移动,如下所示:
在这种情况下,代码编译成功并被RandomGreetings
封装,但我最终遇到了另一个问题。
我无法按逻辑顺序组织包中的那个类。
在这种情况下,有几个班级,所以情况仍然可以控制,但如果班级数量增加,我认为只会有一个独特的大包。
我知道在 Java 中没有subpackage visibility,那么您如何处理这种情况?
你将如何解决我上面的代码的问题?
java - 在同一个包中组织类的任何方式
我正在编写一个具有简单界面的 Java 库,但在幕后发生了很多事情。为了保持 API 表面较小,我将库保存为一个大包(这样我可以使大多数类包受到保护)。现在图书馆已经发展壮大,找到你正在寻找的课程变得有点困难。
有没有办法在同一个包中直观地组织很多类?
我知道一般来说,创建一个新目录也会创建一个新包。有什么办法吗?是否有可能有多个目录都在同一个包中?
如果没有,我也愿意接受任何创造性的方式来直观地组织类(我考虑过在类名前加上它所在的“包”,但我认为这没有多大帮助)。
如果有任何涉及某种 IDE 标签的解决方案,那也是可以接受的(我们使用 IntelliJ)。
谢谢!
java - Maven 中工件的访问限制(模块化)
我知道从 Java 9 开始(我们仍在使用 8),如果您坚持使用 Java 模块系统,则可以限制对其他模块的包的访问。我们正在做 Java EE,我不知道是否有人在这里使用模块系统——我们不太可能会。
我想知道 Maven 是否可以提供类似的服务。可以将文件添加到工件,说明允许哪些外部访问(在某种意义上:这个 groupId 或这个 GAV 可以访问这个包)。然后使用此工件作为依赖项的 Maven 构建可以检查这些规则是否得到满足。
在这个方向上是否有可用的 Maven 插件?
我们正在构建大而复杂的 ear 文件(这在不久的将来不会有很大的改变),并且在控制不同开发团队的 jar 使用的各种方式时遇到了问题。
java - 我不明白为什么我无法访问我的包/类?
我在一个名为PointCP2
的文件中调用了一个类,design2
并且我
package design;
在我的类的顶部PointCP2
。PC2Test
在我的测试类import design2.*;
(
我怎么可能解决这个问题?
java - TypeError: 'JavaPackage' object is not callable (spark._jvm)
I'm setting up GeoSpark Python and after installing all the pre-requisites, I'm running the very basic code examples to test it.
I tried running it with python3 basic.py
and spark-submit basic.py
, both give me this error:
I'm using Java 8, Python 3, Apache Spark 2.4, my JAVA_HOME
is set correctly, I'm running Linux Mint 19. My SPARK_HOME
is also set:
How can I fix this?
java - 在java中导入该类时,我们是导入该类的源代码还是字节码?
我已经开始学习java中的包。我了解了import关键字。现在我的疑问是当我们在java中导入任何类时正在导入的是.class文件还是.java文件。