Skip to main content

java command line tools (java, javac, jar)

javac used to compile source files (*.java)
javac [-options] files
java used to run a compiled code (*.class)
java [-options] class [args...]
jar used to archive files into JAR (*.jar)
jar {ctxui}[vfm0Me] [jar-file] [manifest-file] [entry-point] [-C dir] files
In practise:
Source for Hello.java
package com.blogspot.programmerutilities;

public class Hello {

 public static void main (String[] args){
  System.out.println("Hello World!");
 }
}
Location of the file:
\src\com\blogspot\programmerutilities\Hello.java
Directory structure:
-src
   -com
      -blogspot
         -programmerutilities
            -Hello.java
-build
Compile source file using javac (-d option points to a directory where compiled files will be placed)
javac -d build \src\com\blogspot\programmerutilities\Hello.java
After compilation a Hello.class file will be placed in \build directory (and subdirectories accordingly to the package name).
-src
   -com
      -blogspot
         -programmerutilities
            -Hello.java
-build
   -com
      -blogspot
         -programmerutilities
            -Hello.class
To start this application go to \build (the directory directly above the outer directory of the package) and run java tool with a full name of the class (package and class name without an extension)
cd build
java com.blogspot.programmerutilities.Hello
// Prints "Hello World!"
To create java archive (JAR) run jar tool with a name of new created archive (hello.jar) and the most outer directory of the package name (com)
jar -cf hello.jar com
After that in \build directory the hello.jar file will be placed
-src
   -com
      -blogspot
         -programmerutilities
            -Hello.java
-build
   -com
      -blogspot
         -programmerutilities
            -Hello.class
   -hello.jar
To check the content of the jar run jar tool with -tf options (table of content and file name)
jar -tf hello.jar
To start an application using a jar file run java tool with -cp (or -classpath) option with a path to a jar and full name of a class
java -cp /build/hello.jar com.blogspot.programmerutilities.Hello
// Prints "Hello World!"

Comments

Popular posts from this blog

Deploying Axis2 web service as ROOT application on Tomcat

By default Axis2 services are available on http://host:8080/axis2/services/*. If you want to remove axis2/services part from the service endpoint and access your service by http://host:8080/serviceName/* 1. Overide default Axis2 servlet mapping services in web.xml file. AxisServlet /serviceName/* 2. Remove an application name value by deploying axis2 implementation (from war distribution axis2-1.X.X-war.zip ) as ROOT application. Info: War distribution contains application with above structure: axis2-web META-INF org WEB-INF     classes     conf     lib     modules     services         put here *.aar files to deploy WS     web.xml (manually created) web.xml file Apache-Axis2 AxisServlet Apache-Axis Servlet org.apache.axis2.transport.http.AxisServlet ...

Java read file (entire or line by line)

Four ways to read a file in java. I have tested an execution time of them using 1,37 MB text file with 108825 lines. Result of tests is in a first comment of each method and is specified in milliseconds. 1 Read entire file at once 1.1 FileInputStream with read() // execution time: 7 - 8 ms ByteArrayOutputStream buffer = new ByteArrayOutputStream(); File file = new File("C:\\test.txt"); InputStream is = new FileInputStream(file); byte[] temp = new byte[1024]; int read; while ((read = is.read(temp)) >= 0) { buffer.write(temp, 0, read); } byte[] data = buffer.toByteArray(); System.out.println(new String(data)); PS: remember that read(byte[] b) doesn't do what you think it does -> link 1.2 FileInputStream with readFully() // execution time: 11 - 12 ms File file = new File("C:\\test.txt"); DataInput input = new DataInputStream(new FileInputStream(file)); byte[] bufferArray = new byte[(int) file.length()]; input.readFully(bufferArray); String value = new ...

Convert Source to String

import java.io.BufferedReader; import java.io.IOException; import java.io.Reader; import java.io.StringReader; import javax.xml.transform.Source; import javax.xml.transform.sax.SAXSource; import org.xml.sax.InputSource; public class DataSourceTest { public static void main(String[] args) throws IOException { // created Source InputSource inputSource = new InputSource(new StringReader( " \n \n \n ")); Source source = new SAXSource(inputSource); // read Source SAXSource saxSource = (SAXSource) source; InputSource inputSourceReader = saxSource.getInputSource(); Reader reader = inputSourceReader.getCharacterStream(); BufferedReader buffereRreader = new BufferedReader(reader); String read = null; while ((read = buffereRreader.readLine()) != null) { System.out.println(read); } } }