【发布时间】:2020-01-12 23:16:32
【问题描述】:
我找到了一个包,它只包含了 3 个主要的 .java 类中的一部分,其余的已经在 .class 文件中预编译了。 当我尝试编译它时,IntelliJ IDEA 说它找不到定义,尽管它们显然在那里。 我该怎么办?
❯ tree
.
├── cryptoman.iml
├── pom.xml
├── src
│ └── main
│ ├── java (marked as sources)
│ │ └── kanni
│ │ └── grand
│ │ ├── Main.java
│ │ ├── Smthing1.java
│ │ ├── Smthing2.java
│ │ ├── ...
│ │ ├── SendInChanelF.class
│ │ ├── SendMessage.class
│ │ ├── dataUsl.class
│ │ ├── dataVar.class
│ │ ├── db.class
│ │ ├── s40data.class
│ │ └── wAlgo.class
│ └── resources (marked as resources)
│ ├── ...
│ └── ...
└── target
7 directories, 27 files
按原样编辑我有 2 个问题。
1) 在 Main.java 类 IDE 中大喊“无法解析符号”,例如
static SendInChanelF si1;.
2)试图编译它说'java:找不到符号'SendInChanelF
好的。搜索了论坛后,我尝试将 .class 文件放在不同的文件夹中并将其标记为依赖项
File -> Project Structure -> modules -> Dependencies -> Add -> JARS or Directory -> Choose the directory
1) 现在在 Main.java 类 IDE 中解析 SendInChanelF。
2) 但是编译器仍然拒绝编译。
试图使缓存/重启无效。没有帮助 =) 为了防止你不喜欢,很遗憾我不能使用源代码。
【问题讨论】:
-
把你的类文件放在一个罐子里。在您的 Maven 存储库中安装该 jar。像使用 Maven 项目中的任何其他依赖项一样使用它。不过实话说? .class 文件,没有来源,我猜也没有任何文档?我永远不会使用它。
-
感谢您的回复。无法使用完整的源代码 =( 是否可以在没有 maven 的情况下重用这些类?
-
嗯,您的构建基于 Maven。所以你最好使用适用于 Maven 的解决方案。
-
那些编译类中的方法和类是部分私有的。不能重用它们=(所以我只有一个选择可以使用它们,就好像我的类是该库的一部分一样。我错了吗?你能告诉我还有什么其他选择吗?不管它们是传统的还是没有。谢谢!
-
您得到的编译器错误是什么?可以分享Minimal, Complete, and Verifiable example吗?
标签: java intellij-idea compilation