Java Eclipse错误:“;进口。。。无法解析”;
我知道我在问一个非常受欢迎的问题。但我找不到解决问题的办法。我有一个沙盒,在其中添加了单元测试Java Eclipse错误:“;进口。。。无法解析”;,java,eclipse,Java,Eclipse,我知道我在问一个非常受欢迎的问题。但我找不到解决问题的办法。我有一个沙盒,在其中添加了单元测试multicurvebuildingdiscountaudtest.java文件的代码并对其进行了注释 然后我添加了main方法,我可以成功地运行程序(在控制台中打印一些东西) 最后,我取消了multicurvebuildingdiscountaudtest.java文件的代码注释,发现了以下错误: The import com.opengamma.analytics.financial.instrum
multicurvebuildingdiscountaudtest.java
文件的代码并对其进行了注释
然后我添加了main方法,我可以成功地运行程序(在控制台中打印一些东西)
最后,我取消了multicurvebuildingdiscountaudtest.java文件的代码注释,发现了以下错误:
The import com.opengamma.analytics.financial.instrument.index.GeneratorSwapFixedONMaster cannot be resolved.
此外,在守则中:
GeneratorSwapFixedONMaster cannot be resolved
我知道该导入位于og analytics src/test/java
位置,我相信在构建路径中没有列出该位置。我相信问题在于构建路径选项,特别是像GeneratorSwapFixedONMaster这样的类,它们是专门为测试而创建的。我一直在清理、重建项目、重新安装,并因此更新JRE。我访问了这些和这些问题。
你知道我该怎么做才能纠正下面的错误吗
我对原始multicurvebuildingdiscountaudtest.java
文件的其他导入也有很多问题
更新:#1是我的文件的位置#2是此项目使用的类的位置。multicurvebuildingdiscountaudtest.java
文件取自src/test/java
更新2:人们可能会看到,在库中,我已经包含了我可能需要的所有依赖项(至少我不知道还要添加什么)。Maven依赖项包含holeog analytics
包:
我知道这个导入位于og analytics src/test/java位置,我相信在构建路径的任何地方都没有列出
完美地解释了你的问题。为了导入任何类,您必须在生成路径中包含源代码,或者在某个目录中包含该类的编译版本。很简单
答案是:弄清楚你的项目设置。如果您打算从某个地方使用类,您必须以某种方式使它们可用。否则它将无法工作。在您的情况下:如果您的测试想要使用某个东西,那么您可能应该将该“东西”添加到您的测试项目中(您应该避免将仅测试的东西添加到您的“产品”项目中)
这就是全部。您将源(src
)文件夹og analytics/src/main/java
,其中包含*.java
文件,而不是类(bin
或classes
)文件夹和*.class
文件(在您的情况下,可能是og分析/target/classes
)
但是,您应该在项目选项卡中添加项目og analytics
。或者更好的是,在Mavenpom.xml
文件中,将依赖项添加到项目og analytics
,就像您对og util所做的那样,它是一个Maven项目吗?您能给出一个例子:在哪个类中导入c无法解析,该类位于何处(在项目的src/main/java
中og analytics
)?缺少的类在何处(在同一项目的src/test/java
中,在不同的项目中,在JAR或Maven依赖项中,…)亲爱的@howlger,我已经包括了更新。所有项目都在使用Maven。为什么您的MultiCurveBuildingDiscountAudtest单元测试位于src/main/java
中?测试应该在src/test/java
中。此外,您不会在其他模块中看到src/test/java
中的文件,它将在构建期间运行,但e类文件将不在最终的jar中,因此您不能从src/test引用src/main中的类(您只能用另一种方法)。要解决给定的问题,请点击下面的链接亲爱的@GhostCat,我已经更新了这个问题。从第二个屏幕截图中,您可能会看到我正在使用所有需要的库:显式声明的og analytics/src/test,在Maven Dependencies中,我有og analytics和jar-s的其余部分。我在玩howlger和@GhostCat建议以及我在互联网。我不知道发生了什么。我做了太多的改变,我相信更新Maven最终解决了这个问题。