Configure default target class name when copying class in Eclipse

I often copy a class and paste it into the same package, just as a template for creating another similar class. This is well supported in both NetBeans and Eclipse. The small difference between the 2 IDE is in the default name for the target class: NetBeans uses the format "Foo_1", while Eclipse uses "CopyOfFoo". Since I will never use a class like CopyOfFoo, I prefer the short form used in NetBeans.

So how to configure the default target class name in Eclipse? I searched in Eclipse preference to no avail. A grep through Eclipse installation directory reveals 2 jar files containing the string "CopyOf"

Binary file ./plugins/org.eclipse.jdt.ui_3.4.1.r341_v20080827-1100.jar matches
Binary file ./plugins/org.eclipse.wst.jsdt.ui_1.0.12.v200809172136.jar matches
The first one looks right. So I first quit Eclipse, back up plugins/org.eclipse.jdt.ui_3.4.1.r341_v20080827-1100.jar, expand it to /tmp/eclipse, and edit the file org/eclipse/jdt/internal/corext/refactoring/refactoring.properties.

Change the value of the following property from CopyOf{0} to the desired value (say X{0}):
- CopyRefactoring_cu_copyOf1=CopyOf{0}
+ CopyRefactoring_cu_copyOf1=X{0}
Update plugins/org.eclipse.jdt.ui_3.4.1.r341_v20080827-1100.jar with modified refactoring.properties:
cd /tmp/eclipse
jar uvf $HOME/eclipse/plugins/org.eclipse.jdt.ui_3.4.1.r341_v20080827-1100.jar org/eclipse/jdt/internal/corext/refactoring/refactoring.properties
Ideally, I wanted to append, rather than prepend, the extra 'X', but it turns out {0}X is resolved to a file name like Foo.javaX, not FooX.java. So Eclipse refactoring complains about it not being a valid compilation unit.

Restart Eclipse and see the new default name in action.  These steps have worked for me (my Eclipse is Version 3.4.1), but this should not be the preferred way to configure Eclipse.  I wish it can be configured in preferences.  Any changes to that plugin jar may be overwritten when it is updated from remote repository.


Ernesto said...

Wow!!! excellent I am learnig to use Eclipse + Java and this is the best info I have found.

see my blog also

SvendK said...

Seems like it is finally going to be changed. Funny thing, the "bug report" is from 2006, no action until 2013, with a proposed fix ready just a few days ago. Timing :D


Best regards, SvendK

Unknown said...

Great and Useful Article.

Online Java Training

Java Online Training India

Java Online Course

Java EE course

Java EE training

Best Recommended books for Spring framework

Java Interview Questions

Java Course in Chennai

Java Online Training India

Unknown said...

I enjoyed on reading your blog post. Very interesting to read this article.I would like to thank you for the efforts you had made for writing this awesome article. Please visit my website, Friv 4000 Games is where all the free friv games.
Friv 4000

blogs said...


Susan said...

This article is an engaging abundance of enlightening information that is intriguing and elegantly composed. I praise your diligent work on this and thank you for this data. The 192.168.l.254 are used by router brands such as Westell ADSL Modems, 3Com routers, Linksys switches, 2Wire routers, TP-Link routers Alcatel ADSL Modems, Thompson ADSL routers, ADSL billions routers, SRW2023 and others.

aspire world immigration said...


I found this to be a really helpful article. I love the subject you have done about bloggers. It gives me a number of ideas to write about the best visa consultants in Delhi .visa consultants in delhi

Thanks again for all the tips.