2

I am new to Java and I want to run a simple java file on my Linux host.

I started with a simple shell command:

mkdir -p ~/py4j/examples

I put AdditionApplication.java in the above folder

The file looks like this:

// ~/py4j/examples/AdditionApplication.java

package py4j.examples;

import py4j.GatewayServer;

public class AdditionApplication {

  public int addition(int first, int second) {
    return first + second;
  }

  public static void main(String[] args) {
    AdditionApplication app = new AdditionApplication();
    // app is now the gateway.entry_point
    GatewayServer server = new GatewayServer(app);
    server.start();
  }
}

Notice that it imports this:

import py4j.GatewayServer;

The above import depends on code here:

~/py4j0.10.6.jar

Next I installed java and set two env variables:

export JAVA_HOME=${HOME}/jdk
export PATH="${JAVA_HOME}/bin:${PATH}"

I use this shell command to see it:

${JAVA_HOME}/bin/java -version

It says:

java version "1.8.0_152"
Java(TM) SE Runtime Environment (build 1.8.0_152-b16)
Java HotSpot(TM) 64-Bit Server VM (build 25.152-b16, mixed mode)

Next I ran two shell commands:

cd ~
javac -cp py4j0.10.6.jar py4j/examples/AdditionApplication.java

The above command created a class file:

dan@h79:~ $ ll py4j/examples/AdditionApplication.*
-rw-rw-r-- 1 dan dan 472 Dec 22 20:59 py4j/examples/AdditionApplication.class
-rw-rw-r-- 1 dan dan 431 Dec 22 20:58 py4j/examples/AdditionApplication.java
dan@h79:~ $ 

Next I ran another shell command:

dan@h79:~ $ java -cp py4j0.10.6.jar py4j.examples.AdditionApplication
Error: Could not find or load main class py4j.examples.AdditionApplication
dan@h79:~ $

Question: How do I run ~/py4j/examples/AdditionApplication.class ?

1 Answer 1

2

You need to add classpath for AdditionApplication as well.

java -cp py4j0.10.6.jar:. py4j.examples.AdditionApplication

Notice the :.. : is path separator, . is current directory. Of course that assumes current folder is ~,

Sign up to request clarification or add additional context in comments.

2 Comments

:. works well. SOF is broken tho; I cant accept the answer.Thanks!
try refreshing :)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.