2

I am getting a Error while I am trying to run java file from the terminal...

java version...

java version "1.8.0_181"
Java(TM) SE Runtime Environment (build 1.8.0_181-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.181-b13, mixed mode)

javac version

javac 1.8.0_181

I have a java file name Test4 with a main.

I am running this command to create a java class

/opt/Tests/Test4/src/test4> javac -cp "/opt/glassfish5/glassfish/lib/*" 
Test4.java

and it work successfully , I am getting the Test4.class file

now I am trying to run the java command:

/opt/Tests/Test4/src/test4> java -cp "/opt/glassfish5/glassfish/lib/*" Test4

and getting

Error: Could not find or load main class Test4

also

/opt/Tests/Test4/src> java -cp "/opt/glassfish5/glassfish/lib/*" test4.Test4

still Error: Could not find or load main class Test4

also

/opt/Tests/Test4/src/test4> java -cp "/opt/glassfish5/glassfish/lib/*" 
Test4.class

still Error: Could not find or load main class Test4

also

/opt/Tests/Test4/src> java -cp "/opt/glassfish5/glassfish/lib/*" 
test4.Test4.class

still Error: Could not find or load main class Test4

You can find below my class :

package test4;



import java.util.Hashtable;
import java.util.Map;
import java.util.Properties;
import javax.jms.Connection;
import javax.jms.Queue;
import javax.jms.ConnectionFactory;
import javax.jms.JMSContext;
import javax.jms.JMSException;
import javax.jms.JMSProducer;
import javax.jms.QueueConnection;
import javax.jms.QueueConnectionFactory;
import javax.naming.Context;
import javax.naming.InitialContext;
import javax.naming.NamingException;

/**
*
* @author zion
*/
public class Test4 {

/**
 * @param args the command line arguments
 */
public static void main(String[] args) throws NamingException {

    Context initialContext = Test4.getInitialContext();

    ConnectionFactory connectionFactory = (ConnectionFactory)initialContext.lookup("jms/connection");

    JMSContext jMSContext =  connectionFactory.createContext();
    Queue myQueue = (Queue)initialContext.lookup("jms/myQueue");
    JMSProducer jMSProducer = jMSContext.createProducer();
    jMSProducer.send(myQueue, "Hi,Zion");
    System.out.println("work work work wrok wrok");
}



 public static Context getInitialContext() throws NamingException{
    Hashtable env = new Hashtable();
    env.put(Context.INITIAL_CONTEXT_FACTORY, "com.sun.enterprise.naming.impl.SerialInitContextFactory");
    env.put(Context.STATE_FACTORIES, "com.sun.corba.ee.impl.presentation.rmi.JNDIStateFactoryImpl");
    env.put(Context.URL_PKG_PREFIXES, "com.sun.enterprise.naming");
    env.put("org.omg.CORBA.ORBInitialHost", "IP");
    env.put("org.omg.CORBA.ORBInitialPort", "Port");

    return new InitialContext(env);
}

}

Inside the folder :

/opt/Tests/Test4/src/test4# ls
Test4.class  Test4.java
Amira Bedhiafi
  • 8,088
  • 6
  • 24
  • 60
Zion Aronov
  • 83
  • 1
  • 10

1 Answers1

1

You need to include your Test4 class file to the classpath.

Assuming your Test4.class file is located on /opt/Tests/Test4/src/test4 and the fully qualified name is test4.Test4 then you should do something like:

/opt/Tests/Test4/src> java -cp "/opt/glassfish5/glassfish/lib/*":"." test4.Test4

Note that the directory of the terminal is /opt/Tests/Test4/src and not /opt/Tests/Test4/src/test4

Hope this helps

Martín Zaragoza
  • 1,717
  • 8
  • 19