java - 项目可以检测导入语句,但不会使用它

标签 java intellij-idea

我目前正在尝试使用 rhino 进行一些网页抓取(由于 React,我需要使用 Casperjs)。所以我所做的是将源文件添加到 jar 文件中,并将其放入我正在使用的现有库中,没有任何问题。前面的所有类(class)都可以访问该库中我需要的所有内容。然而,这个犀牛 jar 给我带来了问题。

我已经尝试了所有我知道的方法,用一百万种不同的方式制作 jar 等等。目前,我刚刚从主包结构(即 org.mozilla,然后分为类路径和 JavaScript)中制作了一个 jar。我想要使​​用的类中的 import 语句检测到“org.mozilla.javascript.*”是有效的,并且没有任何问题。但导入未使用。

因此,我需要导入资源的第一项是“Context”,其中该 jar 文件中有一个相应的“Context.java”类。但是,当我打开该类来查看它的功能时,该类找不到它在自己的包中链接到的任何其他类。 Context.java 中的所有导入都会导致“无法解析符号”。

我假设这是一个我做错了什么的问题,但我不能说我现在已经知道如何解决这个问题。抱歉,如果图片遗漏了细节,但是我正在尝试使用的库中可能有几百个 Java 类,所以我一次只能适应屏幕,例如 1 或 2 个,所以我将它们裁剪得更小因此您不必在数百个类中查找列表中未正确导入的两个类。

Java Class that I am usingContext.java from library with imports not working

最佳答案

如果您的 jar 文件中有一个“Context.java”文件,那么看起来您的做法完全错误。简而言之,要运行使用 jar 中的某些库的 Java 程序,您需要那里的库类(*.class 文件)的编译版本,而不是源代码。

Java 不是 JavaScript,与其不相似或不相关,开发过程也不同。要学习正确的方法,我建议从 Java 教程开始: https://docs.oracle.com/javase/tutorial/ 阅读“涵盖基础知识”、“入门”、“学习语言”和“部署”章节。

一旦您了解了 JAR 是什么,请查看此 Maven 教程: http://maven.apache.org/guides/getting-started/index.html

关于java - 项目可以检测导入语句,但不会使用它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49763355/

相关文章:

java - Tapestry 循环遍历 hashmap

java - 在 JAR 中导出时,Weka 和 Snowball 不起作用

java - 将 Enum.class 作为参数传递?

Java程序——密码检查器

java - 选择要运行的配置类型时,在 IntelliJ IDEA 15 中运行 Gradle 测试而不是 Junit 测试

java - 搜索并替换没有大括号的 if 语句以包含大括号

grails - HTTPBuilder库

java - 如何制作调用其他注解的注解

java - 如何使用 IntelliJ 中的相对路径从外部库中引用 jar 文件?

java - 如何将 "2014-08-10T06:34:04-0500"转换为 SimpleDateFormat