Refactoring, Renaming, and version management

I’m using the netbeans IDE to write my Java and overall I think it’s excellent. It’s a completely different experience to perl coding where my idea of version management is to save-as a different filename. If I want to rename something in Perl I do just that. With modules it’s a bit more involved but not that tricky.

I was writing a Java program to interface with a SQL server. This program morphed into something completely different so I decided it was time to rename it. Now what?

I discovered refactor->rename. Brilliant! rename to something else, job done. I re-compiled and ran it and got this:

NoClassDefFoundError:sql_test1/Main

Wha? sql_test1 was the old name, not the new name. The files had all been changed, what’s the deal? ok, google: java netbeans NoClassDefFoundError after refactor . Now sort through the results. No joy. I found that the project.properties file had the old name for main.class. Haha! Changed it to the new name. Then I got the same error except with the new name. What gives?

Eventually I found an article here where I found the answer: A) don’t use Main, your program to something else and B) The class must be capitalized! That’s what tripped me up, I had it in lower case. Once I renamed my class to be capitalized it all worked fine.

Submit comment

Allowed HTML tags: <a href="http://google.com">google</a> <strong>bold</strong> <em>emphasized</em> <code>code</code> <blockquote>
quote
</blockquote>