java - 如何向模块路径添加依赖项?

标签 java java-9 jgrasp

我是编程新手,在进行我的第一个软件开发项目时遇到错误:“包 javax.activation 不可见。”我读过其他帖子说为了修复错误,必须向模块路径添加依赖项?

因为我才刚刚起步,所以我真的不知道这意味着什么以及如何去做,想知道是否有人可以为我指明正确的方向?提前致谢。 (如果重要的话,我也在使用 JGrasp)

最佳答案

从广义上讲,依赖项是您的应用程序需要编译的代码(通常由其他人编写)。

在您的案例中,依赖项是一个 java 库,其中包含需要位于您的类路径中的类。您可以在此处找到有关类路径的更多信息:https://docs.oracle.com/javase/tutorial/essential/environment/paths.html .为了克服问题中提到的错误,您需要在类路径上具有 javax.activation 模块依赖性。

您可以通过几种方式做到这一点。在大多数 IDE 中(在您的情况下我们谈论的是 JGrasp),有一种方法可以直接向项目添加依赖项。然后,您的 IDE 将编译具有给定类路径依赖性的代码,问题将得到解决。这将是第一个也是对初学者最友好的方式,不幸的是我对 JGrasp 没有任何概念,所以我将专注于其他解决方案。

第二种方法是使用构建自动化工具构建程序,例如 Apache MavenGradle。您绝对应该检查一下这些人,因为在构建 Java 代码时它们非常有用,而且迟早您可能会开始使用它们。假设您选择了 Apache Maven。在您的项目中,您将拥有一个 pom.xml 文件,您只需在 Maven 中央存储库中查找所需的依赖项,将其添加到 pom.xml 中的依赖项部分> 文件并构建应用程序。你的 pom 看起来像这样:

  <project>
        ...
        <dependencies>
    <!-- https://mvnrepository.com/artifact/javax.validation/validation-api -->
    <dependency>
    <groupId>javax.validation</groupId>
    <artifactId>validation-api</artifactId>
    <version>2.0.1.Final</version>
    </dependency>
    </dependencies>
    ...
    </project>

当然,Apache Maven 不是轻量级工具,因此您必须花一些时间来学习如何使用它构建代码。我建议从本教程开始: https://maven.apache.org/guides/getting-started/maven-in-five-minutes.html 我还鼓励您了解 Apache Maven 文档,因为它非常易读且透明。

我能想到的最后一种方法是手动编译您的应用程序并在编译过程中包含所需的依赖项。有很多关于 SO 的教程告诉您如何执行此操作,因此我将简单地总结并指出资源。你需要做的就是找到需要的依赖jar包。您需要搜索 Maven 中央存储库(请参阅:https://mvnrepository.com/)并从那里下载您的 .jar 文件。您需要做的下一件事是学习如何将 Java 代码编译为 .class 文件,包括下载的 jar。获得如此绝妙的技能,请看这个:How to include jar files with java file and compile in command prompt

在这三种方式中,推荐的一种方式是熟悉 Apache Maven 或 Gradle 等构建工具。希望我帮助了你!祝你好运

关于java - 如何向模块路径添加依赖项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52021896/

相关文章:

java - Android Flash 杂志应用

java - 从 SQL Server 成功检索数据后 JTable 为空

Java 9 整数到字符串转换

javascript - 如何向 jgrasp 代码添加声音?

Java监控: JMX vs. Servlets

java - 使用 JPQL 对非实体结果进行类型化查询

java - 如何让 jjs --add-opens 在 Java 9 中工作?

java - 如何使用 JavaFX 9(StyleManager 的替代品)为应用程序设置多个默认 CSS 样式表?

java - 设置所需的字符串长度

java - 线程中的异常 "Thread-2"java.lang.IllegalArgumentException : input == null