karikari
karikari

Reputation: 6797

Eclipse error: indirectly referenced from required .class files?

I got an error in Eclipse. What does this error message means:

The type iglu.ir.TermVector cannot be resolved. It is indirectly referenced from required .class files

Upvotes: 219

Views: 576673

Answers (24)

Yorsh
Yorsh

Reputation: 50

Eclipse menu

I always use this option when importing projects to fix problems like these

Right click on the project > Maven > Update project

The desired project must be checked on the "Update Maven Project" window and the "Clean projects" option

Upvotes: 0

BugsOverflow
BugsOverflow

Reputation: 538

I ran maven clean (only clean) and it solved the error

Upvotes: 0

NPKR
NPKR

Reputation: 5496

It sounds like this has been a known issue (Bug 67414)that was resolved in 3.0 ... someone has commented that it's occurring for them in 3.4 as well.

In the mean time, the work around is to remove the JRE System Library from the project and then add it back again. Here are the steps:

  • Go to properties of project with the build error (right click > Properties)

  • View the "Libraries" tab in the "Build Path" section

  • Find the "JRE System Library" in the list (if this is missing then this error message is not an eclipse bug but a mis-configured project)

  • Remove the "JRE System Library"

  • Hit "Add Library ...", Select "JRE System Library" and add the appropriate JRE for the project (eg. 'Workspace default JRE')

  • Hit "Finish" in the library selection and "OK" in the project properties and then wait for the re-build of the project

Hopefully the error will be resolved ...

Upvotes: 16

ritu mansata
ritu mansata

Reputation: 75

right click on your project->properties->maven->active maven profile(comma seperated) then in that box write pom.xml and check the resolve dependencies from workspace project

Upvotes: 0

Vikcen
Vikcen

Reputation: 183

In my case the problem was "javax.ws.rs.webapplicationexception cannot be resolved" in execution when starting the web application in Tomcat.

Solution adding the following library (Maven):

<dependency>
    <groupId>javax.ws.rs</groupId>
    <artifactId>javax.ws.rs-api</artifactId>
    <version>2.0</version>
</dependency>

Upvotes: 0

HopefullyHelpful
HopefullyHelpful

Reputation: 1799

For me none of the solutions above worked. What worked for me was to select all the code in the class, then convert it to a comment, save, then convert it back to normal text, the error was gone.

Upvotes: 1

Eddie Martinez
Eddie Martinez

Reputation: 13910

What fixed it for me was right clicking on project > Maven > Update Project

Upvotes: 6

Neeleshkumar S
Neeleshkumar S

Reputation: 776

Point the JRE in the Build path to a JDK. That worked for me.

Upvotes: -1

Renardo
Renardo

Reputation: 549

I had an interesting case of this problem with Eclipse 4.4.2. My project (P1) referenced an external class (project P2) with two methods with the same name but different argument types:

public static void setItem(Integer id) …
public static void setItem(Item item) …

The type Item was contained in a third project P3, which I did not want to be visible here. P1 called only the first method:

ExternalClass.setItem(Integer.valueOf(12345));

So the second method, which used the Item class, was not used, and it is true that P3 was not in the compilation classpath – why should it if it is not used.

Still Eclipse told me

The type ...Item cannot be resolved.
It is indirectly referenced from required .class files

Compiling from the command line did not produce any such issues. Changing the name of the second method (unused here!) made the problem go away in Eclipse, too.

Upvotes: 4

Chris Staikos
Chris Staikos

Reputation: 1160

In my case it was a result of my adding a new dependency to my pom.xml file.

The new dependency depended on an old version of a library (2.5). That same library was required by another library in my pom.xml, but it required version 3.0.

For some reason, when Maven encounters these conflicts it simply omits the most recent version. In Eclipse when viewing pom.xml you can select the "dependency hierarchy" tab at the bottom to see how dependencies are resolved. Here you will find if the library (and thus class) in question has been omitted for this reason.

In my case it was as simple as locking down the newer version. You can do so by right-clicking the entry - there is an option to lock it down in the context menu.

Upvotes: 0

Xavier Portebois
Xavier Portebois

Reputation: 3505

I had this error because of a corrupted local maven repository.

So, in order to fix the problem, all I had to do was going in my repository and delete the folder where the concerned .jar was, then force an update maven in Eclipse.

Upvotes: 22

Ming Leung
Ming Leung

Reputation: 385

For me, it happens when I upgrade my jdk to 1.8.0_60 with my old set of jars has been used for long time. If I fall back to jdk1.7.0_25, all these problem are gone. It seems a problem about the compatibility between the JRE and the libraries.

Upvotes: 2

oiyio
oiyio

Reputation: 5925

When i use a new eclipse version and try to use the previous workspace which i used with old eclipse version, this error occured.

Here is how i solve the problem:

Right click my project on Package Explorer -> Properties -> Java Build Path -> Libraries -> I see an error(Cross Sign) on JRE System Library. Because the path cannot be found. -> Double click the JRE System Library -> Select the option "Workspace Default JRE" -> Finish -> OK. -> BUM IT IS WORKING

FYI.

Upvotes: 0

Orlando Valencia
Orlando Valencia

Reputation: 41

I got this exception because eclipse was working in a different version of jdk, just changed to the correct, clean and build and worked!

Upvotes: 4

Arne Deutsch
Arne Deutsch

Reputation: 14769

It means: "A class that you use needs another class that is not on the classpath." You should make sure (as Harry Joy suggests) to add the required jar to the classpath.

Upvotes: 214

steelmonkey
steelmonkey

Reputation: 459

Since you give us very little details, most likely what you did, which is an incredibly easy mistake to make, is that instead of heading to

Build Path > Configure Build Path > Projects

and adding your additional project folder from there, instead you went to

Build Path > Configure Build Path > Libraries

and added your project folder from there instead.

This is most definitely the case if your code is all correct, but upon automatically reorganizing imports via the ctrl+space shortcut , instead of your import statements referring to com.your.additionalproject, your references all point to bin.com.your.additionalproject.

Note the bin. Meaning that you -are- indirectly referring to your class by treating your other project folder structure as a library, making your IDE doing all the wokr of finding the exactly binary class you're referring to.

To correct this, remove the folder from the Libraries, and instead add it under the Projects tab, and reorganize your imports. Your project should work fine.

Upvotes: 0

user3445991
user3445991

Reputation: 11

Quickly and Simply I fixed it this way ( I use ADT version: v21.0.0-531062 on Windows XP home edition)

  1. Opened manifest file.
  2. Changed the Existing project minSdkVersion to the same value as maxSdkVersion ( advise: it may be good to create a New project and see what is it's maxSdkVersion )
  3. Save manifest file.
  4. Right Click the project and select Build Project.
  5. From top menu: Project - Clean.. - check Only the relevant project, below I checked Start a build immediately and Build only the selected projects and OK.
  6. open the java file - NO red errors anymore !
  7. Back to step 1 above and changing Back minSdkVersion to it's Original value (to supoprt as many Android version as possible).

It worked BUT the problem returns every few days. I do the same as above and it solves and lets me develop.

Upvotes: 1

laaptu
laaptu

Reputation: 2973

In my case ,I created a project and made its minSdkVersion=9 and targetSdkVersion=17. I used automatically generated libs/android-support-v4.jar. I also had to make use of ActionBarActivity using android-support-v7-appcomapt.jar. So I just copied the android-support-v7-appcompat.jar file from android-sdk/extras/andrid/support/v7/appcompat/libs folder and pasted it to my project libs folder. And this caused the above error. So basically,I needed to put android-support-v4.jar file from android-sdk/extras/andrid/support/v7/appcompat/libs as well to my project libs folder. As per my knowledge the v7.jar file had dependencies on v4.jar file. So ,it needed it own v4.jarfile,instead of my project,automatically created v4.jar file.

Upvotes: 1

M&#225;rio Kapusta
M&#225;rio Kapusta

Reputation: 508

It happens to me sometimes, I always fixed that with "mvn eclipse:clean" command to clean old properties and then run mvn eclipse:eclipse -Dwtpversion=2.0 (for web project of course). There are some old properties saved so eclipse is confused sometimes.

Upvotes: 20

user2774465
user2774465

Reputation: 11

I got the error when I just changing some svn settings and not anything in the code. Just cleaning the projects fixed the error.

Upvotes: 1

MilesHampson
MilesHampson

Reputation: 2079

In addition to the already suggested cause of missing a class file this error can also indicate a duplicate class file, eclipse reports this error when an class file on the build path uses another class that has multiple definitions in the build path.

Upvotes: 0

Denis
Denis

Reputation: 105

If you still can not find anything wrong with your setup, you can try Project -> Clean and clean all the projects in the workspace.

EDIT: Sorry, did not see the suggestion of verbose_mode ... same thing

Upvotes: 3

Mayur
Mayur

Reputation: 386

This error occurs when the classes in the jar file does not follow the same structure as of the folder structure of the jar..

e.g. if you class file has package com.test.exam and the classes.jar created out of this class file has structure test.exam... error will be thrown. You need to correct the package structure of your classes.jar and then include it in ecplipse build path...

Upvotes: 5

Jerry Miller
Jerry Miller

Reputation: 981

This is as likely a matter of Eclipse's getting confused as it is an actual error. I ignored the error and ran the web service whose endpointInterface it complained about, and it ran fine, except for having to deal with the dialog every time I wanted to run it. Just another opaque error that tells me nothing.

Upvotes: 27

Related Questions