Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/git/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java NoSuchFieldError-IntelliJ 10_Java_Tomcat_Intellij Idea - Fatal编程技术网

Java NoSuchFieldError-IntelliJ 10

Java NoSuchFieldError-IntelliJ 10,java,tomcat,intellij-idea,Java,Tomcat,Intellij Idea,我目前有两个项目。一个是我的主要项目TOMCAT/JSP,第二个项目是我正在开发的jar库 我正在制作一个jar的项目非常简单,在最初构建/制作并让它输出一个.jar文件之后,我转到主项目的library部分并指向它。在我尝试向jar添加其他功能之前,一切都按预期进行 在第二个项目中,我向枚举添加了一个新字段。现在,当尝试在主项目中访问它时,我在TOMCAT日志中得到了错误 java.lang.NoSuchFieldError: MY_NEW_FIELD 我试着从输出中删除jar,从库中删除链

我目前有两个项目。一个是我的主要项目TOMCAT/JSP,第二个项目是我正在开发的jar库

我正在制作一个jar的项目非常简单,在最初构建/制作并让它输出一个.jar文件之后,我转到主项目的library部分并指向它。在我尝试向jar添加其他功能之前,一切都按预期进行

在第二个项目中,我向枚举添加了一个新字段。现在,当尝试在主项目中访问它时,我在TOMCAT日志中得到了错误

java.lang.NoSuchFieldError: MY_NEW_FIELD

我试着从输出中删除jar,从库中删除链接并重建。似乎没有什么能解决它。是否有类似于“clean”的东西可以用来解决这个问题,或者我还需要做其他事情?

您可以打开jar文件,提取类并在其上运行
javap
以查看字段是否确实存在吗?另外,如何打包部署的war文件?是的,我创建了一个名为SanityCheck的新项目。在其中,我使用System.out.println(MyEnum_MY_NEW_Field.getDisplayValue());它显示在输出中。我通过进入projectstructure-artificts-jar部署包。然后,我让输出布局成为Jar的名称,它包含项目库&有一个编译输出。这会将.jar推送到out\artifacts文件夹
文件
|
使缓存无效
可能会有所帮助,请注意IDEA或Tomcat可以缓存jar。正确的设置方法是使用带有两个模块的单个项目,而不是向依赖项添加一个jar,而是向依赖项添加一个模块,这样IDEA应该能够正确处理更改。