首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >错误:找不到或加载主类

错误:找不到或加载主类
EN

Stack Overflow用户
提问于 2018-09-14 13:15:54
回答 1查看 7K关注 0票数 2

当我试图从终端运行java文件时,我收到了一个错误.

java版本..。

代码语言:javascript
复制
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版本

代码语言:javascript
复制
javac 1.8.0_181

我有一个带有Test4的java文件名main

我正在运行这个命令来创建一个java class

代码语言:javascript
复制
/opt/Tests/Test4/src/test4> javac -cp "/opt/glassfish5/glassfish/lib/*" 
Test4.java

它成功地工作了,我得到了Test4.class文件

现在,我尝试运行java命令:

代码语言:javascript
复制
/opt/Tests/Test4/src/test4> java -cp "/opt/glassfish5/glassfish/lib/*" Test4

和得到

代码语言:javascript
复制
Error: Could not find or load main class Test4

也是

代码语言:javascript
复制
/opt/Tests/Test4/src> java -cp "/opt/glassfish5/glassfish/lib/*" test4.Test4

静止Error: Could not find or load main class Test4

也是

代码语言:javascript
复制
/opt/Tests/Test4/src/test4> java -cp "/opt/glassfish5/glassfish/lib/*" 
Test4.class

仍然错误:找不到或加载主类Test4

也是

代码语言:javascript
复制
/opt/Tests/Test4/src> java -cp "/opt/glassfish5/glassfish/lib/*" 
test4.Test4.class

静态错误:Could not find or load main class Test4

你可以在我的课下面找到:

代码语言:javascript
复制
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);
}

}

在文件夹内:

代码语言:javascript
复制
/opt/Tests/Test4/src/test4# ls
Test4.class  Test4.java
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-09-14 13:19:46

您需要将Test4类文件包含到类路径中。

假设您的Test4.class文件位于/opt/Tests/Test4/src/test4上,并且完全限定的名称是test4.test 4,那么您应该执行如下操作:

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

注意,终端的目录是/opt/Tests/Test4/src,而不是/opt/Tests/Tests 4/src/test4。

希望这能有所帮助

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52332838

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档