Java: Difference between revisions
From charlesreid1
| Line 43: | Line 43: | ||
See [[Java/Profiling]] and [[Java/Timing]] | See [[Java/Profiling]] and [[Java/Timing]] | ||
=Easily Reading from Input Files= | |||
=Using Jar Files= | =Using Jar Files= | ||
Revision as of 18:18, 31 May 2017
Cool: http://www.ibm.com/developerworks/library/j-robots/index.html
Getting Started
Download and install Java, if you need to.
Hello World
This will walk through compiling and running a "Hello world" example in Java.
The program
Here's a simple Java "Hello world" program:
public class HelloWorld {
public static void main(String[] args) {
System.out.println("Hello world!");
}
}
Compiling
To compile this program, use the javac command:
$ javac HelloWorld.java
This will create a HelloWorld.class file, which is the Java executable.
Running
To run a Java executable, use the java command, and pass it the executable's filename without the extension:
$ java HelloWorld Hello, world!
Measuring Performance of Java Code
See Java/Profiling and Java/Timing
Easily Reading from Input Files
Using Jar Files
If you have a jar file that contains class definitions and you wish to use it, you can do the following:
- To check contents of the jar, use the jar utility - it works a lot like tar
- jar xf - expands (shows contents of) jar
Compile
To compile code mysource.java with a jar file called org.example.jar:
On Linux/Mac:
javac -cp '.:org.example.jar' mysource.java
On Windows:
javac -cp .;org.example.jar mysource.java
After this, you obtain the bytecode file mysource.class
Run
Now run the bytecode file:
java -cp '.:org.example.jar' mysource
java -cp .;org.example.jar mysource
Libraries
awesome-java repo on github: https://github.com/akullpp/awesome-java
Immutables in Java (similar notation to javascript/d3): https://immutables.github.io/
libgdx for 3d games in Java: https://libgdx.badlogicgames.com/
- 3d graphics: https://github.com/libgdx/libgdx/wiki/3D-Graphics
stanford core NLP in java: https://stanfordnlp.github.io/CoreNLP/
legion of the bouncy castle (lightweight crypto in Java): https://www.bouncycastle.org/java.html
Selenium web browser test suite: http://docs.seleniumhq.org/
jsoup crawler and html parser https://jsoup.org/
twitter4j twitter client: http://twitter4j.org/en/index.html
crawler4j another crawler and html parser https://github.com/yasserg/crawler4j
Apache Shiro for session management (large enterprise or small mobile) https://shiro.apache.org/