Background
There might be various scenarios in which you might need to get the path of java executable. For example to lets say start java program from withing Java code. In this post we will see how can we achieve that. I will demonstrate a method to find the JAVA_HOME that is usually the JDK directory. Once you have that it is easy to get executable. For eg javac will be in JAVA_HOME/bin/javac.exe
You can use this to start another Java process from you running Java program.
Code
public class JavaHomeTest{ public static void main(String args[]) throws IOException { System.out.println(getJDKDir()); } public static String getJDKDir() { File javaHome = new File( System.getProperty( "java.home" ) ).getParentFile(); File jdkDirectory = null; if( javaHome.getName().contains( "jdk" ) ) { //happens in IntelliJ jdkDirectory = javaHome; } else { //General Scenario - eclipse / command line File[] childDirs = javaHome.listFiles(); for(File file : childDirs) { if(file.getName().contains("jdk")) { jdkDirectory = file; break; } } } return jdkDirectory.getAbsolutePath(); } }
Output :
I am running Windows. The output that I get is 'C:\Program Files (x86)\Java\jdk1.7.0_55'. Code is same for Linux as well. You will get your Java directory.
No comments:
Post a Comment