- picocli, a command-line parser. Apache-licensed; seems similar to JCommander with fewer dependencies.
- 9 Logging Sins in your Java Applications details, well, nine possible logging problems. It’s stuff worth thinking about.
- Five Things You Didn’t Know About… Java Database Connectivity, from IBM developerworks, walks through some things about JDBC that you might not have known. I learned about at least two things that were added since the last time I took a good look at JDBC. (I’m offering no hints about which things they were.)
Tag: jcommander
First steps: Structure of your first source file
This is what a class file ought to look like when you take your first steps writing java programs:
public class YourAppNameHere {
public static void main(String[] args) {
new YourAppNameHere().go();
}
private String iAmAField;
void go() {
System.out.println("Your code goes here!");
}
void someOtherMethod() {
// You can call this method from 'go' with: someOtherMethod()
iAmAField = "Hello, World!";
}
}
In particular, copy/paste the main()
method verbatim and don’t touch it. If you need access to the command line arguments, pass the args
parameter directly to your go
method, and update the go method to take String[] args
as parameter.
Editor’s note: Another way of handling arguments is to use JCommander, which itself encourages the kind of object design in this post.
Why should you do it this way? The short answer is: Because main()
has to be static
, but the idea of static is advanced java. You will and should learn about it in time, but trying to explain it to you (so that you don’t make mistakes because you don’t understand what that means) as you take your first steps is a bit like teaching you about the fuel gauge during your first drive. It’s just not that interesting, and you don’t need to know about it to start taking your first steps. It’ll become much more obvious once you’ve done some exercises. This main()
method will get you out of static
immediately so that you can ignore its existence until the time comes to learn about what it’s for.