Useful Java Tips
Common Java Commands
Java Version
$ java -version
Find java path
$ sudo find / -name java
Compile java code
$ javac <.java file name>
Run java class containing main
$ java -cp <jars separated by colon> <class along with package containing main function>
View classes inside jar
$ jar -tf <.jar file>
Find class in collection of jars
$ for i in /usr/lib/hbase/*.jar; do jar -tvf "$i" | grep -Hsi ImportTsv && echo "$i"; done
Disassemble java class file into attribute and method signatures
$ javap <java .class file>
Generate source code (decompile) from .class or .jar
http://www.javadecompilers.com/
Display java property values.
$ java -XshowSettings:properties -version
Property settings:
awt.toolkit = sun.lwawt.macosx.LWCToolkit
file.encoding = UTF-8
file.encoding.pkg = sun.io
file.separator = /
ftp.nonProxyHosts = local|*.local|169.254/16|*.169.254/16|localhost|*.localhost
gopherProxySet = false
http.nonProxyHosts = local|*.local|169.254/16|*.169.254/16|localhost|*.localhost
java.awt.graphicsenv = sun.awt.CGraphicsEnvironment
java.awt.printerjob = sun.lwawt.macosx.CPrinterJob
java.class.path = .
java.class.version = 52.0
java.endorsed.dirs = /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/jre/lib/endorsed
java.ext.dirs = /Users/abulbasar/Library/Java/Extensions
/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/jre/lib/ext
/Library/Java/Extensions
/Network/Library/Java/Extensions
/System/Library/Java/Extensions
/usr/lib/java
java.home = /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/jre
java.io.tmpdir = /var/folders/ct/qgv470fj7bq6jyjdw39dngzw0000gn/T/
java.library.path = /Users/abulbasar/Library/Java/Extensions
/Library/Java/Extensions
/Network/Library/Java/Extensions
/System/Library/Java/Extensions
/usr/lib/java
.
java.runtime.name = Java(TM) SE Runtime Environment
java.runtime.version = 1.8.0_45-b14
java.specification.name = Java Platform API Specification
java.specification.vendor = Oracle Corporation
java.specification.version = 1.8
java.vendor = Oracle Corporation
java.vendor.url = http://java.oracle.com/
java.vendor.url.bug = http://bugreport.sun.com/bugreport/
java.version = 1.8.0_45
java.vm.info = mixed mode
java.vm.name = Java HotSpot(TM) 64-Bit Server VM
java.vm.specification.name = Java Virtual Machine Specification
java.vm.specification.vendor = Oracle Corporation
java.vm.specification.version = 1.8
java.vm.vendor = Oracle Corporation
java.vm.version = 25.45-b02
line.separator = \n
os.arch = x86_64
os.name = Mac OS X
os.version = 10.11.4
path.separator = :
socksNonProxyHosts = local|*.local|169.254/16|*.169.254/16|localhost|*.localhost
sun.arch.data.model = 64
sun.boot.class.path = /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/jre/lib/resources.jar
/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/jre/lib/rt.jar
/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/jre/lib/sunrsasign.jar
/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/jre/lib/jsse.jar
/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/jre/lib/jce.jar
/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/jre/lib/charsets.jar
/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/jre/lib/jfr.jar
/Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/jre/classes
sun.boot.library.path = /Library/Java/JavaVirtualMachines/jdk1.8.0_45.jdk/Contents/Home/jre/lib
sun.cpu.endian = little
sun.cpu.isalist =
sun.io.unicode.encoding = UnicodeBig
sun.java.launcher = SUN_STANDARD
sun.jnu.encoding = UTF-8
sun.management.compiler = HotSpot 64-Bit Tiered Compilers
sun.os.patch.level = unknown
user.country = US
user.country.format = US_POSIX
user.dir = /Users/abulbasar/workspace/java
user.home = /Users/abulbasar
user.language = en
user.name = abulbasar
user.timezone =
java version "1.8.0_45"
Java(TM) SE Runtime Environment (build 1.8.0_45-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.45-b02, mixed mode)
Install Oracle JDK 1.8 in CentOS
Download the rpm for linux 64 bit version (for example jdk-8u101-linux-x64.rpm) from oracle download site.
$ ~/Downloads
$ wget \
--no-check-certificate \
--no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" \
http://download.oracle.com/otn-pub/java/jdk/8u112-b15/jdk-8u112-linux-x64.rpm
Install yum install the rpm
$ sudo yum localinstall <rpm name e.g. jdk-8u101-linux-x64.rpm> -y
After installing, you can delete the rpm file.
Set JAVA_HOME in /etc/profile by adding the following line at the end of the file.
export JAVA_HOME=/usr/java/jdk1.8.0_112
JVM monitoring tools
jconsole
jvisualvm
Maven
Add Repo
$ sudo wget http://repos.fedorapeople.org/repos/dchen/apache-maven/epel-apache-maven.repo -O /etc/yum.repos.d/epel-apache-maven.repo
Install using yum
$ sudo yum install -y apache-maven
Verify
$ mvn -version
Example pom.xml to
add java 8 dependencies
assembly plugin
specify main class to create executable jar
Maven Find Dependency Tree
$ mvn dependency:tree
Maven build
$ mvn clean
$ mvn package
Location of MVN tar
https://maven.apache.org/download.cgi
References: