90

I have a problem importing an external project. I go File -> Import... -> Existing Projects into Workspace, choose the folder where the project is located and everything is imported - but the package names of the project don't seem to be what Eclipse expects. The package names all have a prefix:

prefix.packagename1
prefix.packagename2

etc.

But Eclipse expects

src.prefix1.prefix.packagename1
src.prefix1.prefix.packagename2

etc. because the directory is src/prefix1/prefix/package1

I don't really want to mess around with external code. How do I tell Eclipse to ignore the directory "src/prefix1"? Or what else can I do?

ROMANIA_engineer
  • 54,432
  • 29
  • 203
  • 199
HenryNguyen
  • 1,153
  • 1
  • 10
  • 8

13 Answers13

108

Just go into the build path and change the source path to be src/prefix1 instead of src.

It may be easiest to right-click on the src directory and select "Build Path / Remove from build path", then find the src/prefix1 directory, right-click it and select "Build Path / Use as source folder".

Woodchuck
  • 3,869
  • 2
  • 39
  • 70
Jon Skeet
  • 1,421,763
  • 867
  • 9,128
  • 9,194
  • 2
    How do I undo whatever that just did? I clicked on "Build Path / Use as source folder" and nothing works anymore. Edit: The answer to my question is to go into "Configure Build Path" and remove the funky thing from the list that isn't src/ or gen/ – ArtOfWarfare Oct 14 '12 at 20:34
  • 25
    Note that Jon's suggestion works but might need a restart of eclipse. – Samik R Jan 22 '13 at 18:43
  • 1
    !! If you still see the error after changing the source folder, build the project. Eclipse sometimes makes me want to smash something. – MattC Nov 26 '13 at 16:34
  • 4
    Close/Open prj worked for me... Eclipse is big tool, it can forget things sometimes – niken Mar 07 '14 at 20:46
  • And if the suggestion (by Jon Skeet) still does not work, exit and restart Eclipse after changing the build path. – Toothless Seer Sep 16 '14 at 22:31
  • I would first discuss it with my team, someone could not like this after you have pushed(git) or committed(svn) to head. Unless you are 100% sure that everyone work with ecplise, or you are not going to commit those 'package' statement – JBoy Jul 18 '16 at 14:36
  • This Im posting in 2018 and fixed my irritating problem as well. Cheers! – Vijay Kumar Kanta Jul 03 '18 at 11:42
76

I just ran into this problem, and since Mr. Skeet's solution did not work for me, I'll share how I solved this problem.

It turns out that I opened the java file under the 'src' before declaring it a source directory.

After right clicking on the 'src' directory in eclipse, selecting 'build path', and then 'Use as Source Folder'

Close and reopen the already opened java file (F5 refreshing it did not work).

Provided the path to the java file from "prefix1" onwards lines up with the package in the file (example from the requester's question prefix1.prefix.packagename2). This should work

Eclipse should no longer complain about 'src.'

ROMANIA_engineer
  • 54,432
  • 29
  • 203
  • 199
Kyle Shanafelt
  • 959
  • 6
  • 5
11

Move your problem *.java files to other folder.

Click 'src' item and press "F5".

Red crosses will dissaperar.

Return your *.java files to "package path", click 'src' item and press "F5".

All should be ok.

Vlad
  • 3,465
  • 1
  • 31
  • 24
2

If you have imported an existing project, then just remove your source folders and then add them again to build path, and restart eclipse. Most of the times eclipse will keep showing the error till you restart.

2

The only thing that worked for me is deleting the project and then importing it again. Works like a charm :)

Slim
  • 21
  • 1
1

Happens for me after failed builds run outside of the IDE. If cleaning your workspace doesn't work, try: 1) Delete all projects 2) Close and restart STS/eclipse, 3) Re-import the projects

Bradley D
  • 2,333
  • 1
  • 15
  • 19
0

Suppose your project has a package like package name1.name2.name3.name4 (declared package)

Your package explorer shows
package top level named name1.name2
sub packages named name3.name4

You will have errors because Eclipse extracts the package name from the file directory structure on disk starting at the point you import from.

My case was a bit more involved, perhaps because I was using a symbolic link to a folder outside my workspace.

I first tried Build Path.Java Build Path.Source Tab.Link Source Button.Browse to the folder before name1 in your package.Folder-name as you like (i think). But had issues.

Then I removed the folder from the build path and tried File > Import... > General > File System > click Next > From Directory > Browse... to folder above name1 > click Advanced button > check Create links in workspace > click Finish button.

ROMANIA_engineer
  • 54,432
  • 29
  • 203
  • 199
darKoram
  • 1,113
  • 1
  • 14
  • 25
  • True. In my case, the project name had a postfix added to it, -2.0.0-SNAPSHOT. Removed that prefix (rename project..) and everything worked. – JRun Jun 28 '15 at 15:29
0

I get this problem in Eclipse sometimes when importing an Android project that does not have a .classpath file. The one that Eclipse creates is not exactly the same one that Android expects. But, the Android .classpath files are usually all relative, so I just copy a correct .classpath file from another project over the incorrect .classpath. I've created a video that shows how I do this: https://www.youtube.com/watch?v=IVIhgeahS1Ynto

0

I happened to have the same problem just now. However, the first few answers don't work for me.I propose a solution:change the .classpath file.For example,you can define the classpathentry node's path like this: path="src/prefix1/java" or path="src/prefix1/resources". Hope it can help.

Jack
  • 1
0

For me the issue was that I was converting an existing project to maven, created the folder structures according to the documentation and it was showing the 'main' folder as part of the package. I followed the instructions similar to Jon Skeet / JWoodchuck and went into the Java build path, removed all broken build paths, and then added my build path to be 'src/main/java' and 'src/test/java', as well as the resources folders for each, and it resolved the issue.

0

The build path should contain the path 'till before' that of the package name.

For eg, if the folder structure is: src/main/java/com/example/dao If the class containing the import statement'package com.example.dao' complains of the incorrect package error, then, the build path should include:src/main/java This should solve the issue.

Angel F Syrus
  • 1,984
  • 8
  • 23
  • 43
-1
  1. Right click on the external folder which is having package
src.prefix1.prefix.packagename1 
src.prefix1.prefix.packagename2
  1. Click Build path --> Remove from build path.

  2. Now go the folder prefix1 in the folder section of your project.

  3. Right click on it --> Build path --> Use as source folder.

  4. Done. The package folder wont show any error now. If it still shows, just restart the project.

-1

Go to src folder of the project and copy all the code from it to some temporary location and build the project. And now copy the actual code from temporary location to project src. And run the build again. Problem will be resolved.

Note: This is specific to eclipse.

Deepak Gupta
  • 197
  • 1
  • 8