On 3/21/2012 10:17 AM, William Colls wrote:
I think this is really an Eclipse problem.
When I try to run my program, I get the error message
NoSuchMethodFound: main
The file does in fact contain a main method, declared as public static
void, with no arguments.
I suspect that Eclipse is looking in the wrong place for the method, but
in every place that I can find in the various configurations, the file
that I am running is identified as the file containing containing the
main() method.
Any suggestions as to where further to look will greatfully received.
Others have explained that "main" must have a parameter list
consisting of exactly one String array. For completeness' sake,
it's *possible* to have a "main" with some other signature; as with
any other method, you can overload "main" as you wish:
public static void main(String[] args) { ... }
public static int main() { return 42; }
public static double main(String justOneArg) {
return Double.parseDouble(justOneArg);
}
...
However, the particular "main" that Java (not just Eclipse) looks
for when starting execution is the one and only "main" that has the
first form above. (You can write "String... args" instead of
"String[] args" if you like, but it's the same thing. Java starts
with the "main" whose parameter list is one String array, however
you happen to express it.)
Only the type of the formal parameter matters; the actual name
is irrelevant. When the arguments aren't used, my own personal
practice is to write
public static void main(String[] unused) { ... }
The only drawback is that code-policing tools sometimes insist
that I write Javadoc comments for the "unused" parameter ;-)
Thanks to all who replied. I changed the the signature to