History | Log In     View a printable version of the current page.  
Issue Details (XML | Word | Printable)

Key: IDEA-12345
Type: Bug Bug
Status: Open Open
Assignee: Eugene Zhuravlev
Reporter: Jonas Kvarnstrom
Votes: 1
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
IDEA: Feedback

"Make" does not recompile after changing project JDK

Created: 12 Apr 07 18:07   Updated: 13 Apr 07 14:00
Component/s: Compiling Project

Build: 6,819
Severity: Low


 Description  « Hide
If I change the project JDK and make the project (using ctrl-f9 or the automatic recompilation that is triggered by running or debugging), IDEA does not automatically recompile the project. I have to do a manual rebuild.

It could be argued whether this is a bug or a feature (not having to rebuild just because the JDK was changed). I guess that my interpretation of "make" is that it should place the project in exactly the same state as a rebuild, while reusing existing results whenever necessary. A manual rebuild should only be necessary if there is a bug in the make system.

(I often run and debug my project under JDK 1.6, but sometimes I want to check that it still works under JDK 1.5, or compile a set of class files to be distributed to computers that only run JDK 1.5. If I change the JDK and run a program, I get "bad version number in .class file", since I'm still using the old class files compiled with JDK 1.6.)



 All   Comments   Work Log   Change History      Sort Order:
Eugene Zhuravlev - 13 Apr 07 14:00
This is also about convenience. Strictly speaking if you add/remove/change a library in a project, project rebuild should be triggered, but it is not, since rebuild can be time-consuming. Also in most such cases recompilation of all classes is not needed.
In my opinion current behaviour is a good compromise between "strictness" and convenience.

One case when rebuild can be triggered automatically, is the change of language level - not so frequent operation and usually after language level change the next operation is rebuild.