Java 无法加载主类

Java 无法加载主类,java,Java,目录结构 package org; import java.io.*; import java.util.Hashtable; import javax.jms.JMSException; //Few more public class QueueSend { public final static String JNDI_FACTORY="weblogic.jndi.WLInitialContextFactory"; public final static String JMS_F

目录结构

package org;

import java.io.*;
import java.util.Hashtable;
import javax.jms.JMSException;
//Few more

public class QueueSend
{
  public final static String JNDI_FACTORY="weblogic.jndi.WLInitialContextFactory";
  public final static String JMS_FACTORY="QCF";
  public final static String QUEUE="TestQ";

  private QueueConnectionFactory qconFactory;
  private QueueConnection qcon; 
  private QueueSession qsession;
  private QueueSender qsender;
  private Queue queue;
  private TextMessage msg;

 public void init(Context ctx, String queueName)
    throws NamingException, JMSException
{
   qconFactory = (QueueConnectionFactory) ctx.lookup(JMS_FACTORY);
   qcon = qconFactory.createQueueConnection();
   qsession = qcon.createQueueSession(false, Session.AUTO_ACKNOWLEDGE);
   queue = (Queue) ctx.lookup(queueName);
   qsender = qsession.createSender(queue);
   msg = qsession.createTextMessage();
   qcon.start();
}

    public void send(String message) throws JMSException {
    msg.setText(message);
    qsender.send(msg);
    }

    public void close() throws JMSException {
    qsender.close();
    qsession.close();
    qcon.close();
    }

    public static void main(String[] args) throws Exception {
    if (args.length != 1) {
    System.out.println("Usage: java QueueSend WebLogicURL");
    return;
    }
    InitialContext ic = getInitialContext(args[0]);
    QueueSend qs = new QueueSend();
    qs.init(ic, QUEUE);
    readAndSend(qs);
    qs.close();
    }

    private static void readAndSend(QueueSend qs) throws IOException, JMSException
    {
    String line="Test Message Body with counter = ";
    BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
    boolean readFlag=true;
    System.out.println("\n\tStart Sending Messages (Enter QUIT to Stop):\n");
    while(readFlag)
    {
    System.out.print("<Msg_Sender> ");
    String msg=br.readLine();
    if(msg.equals("QUIT") || msg.equals("quit"))
    {
    qs.send(msg);
    System.exit(0);
    }
    qs.send(msg);
    System.out.println();
    }
    br.close();
    }

    private static InitialContext getInitialContext(String url) throws NamingException
    {
    Hashtable env = new Hashtable();
    env.put(Context.INITIAL_CONTEXT_FACTORY, JNDI_FACTORY);
    env.put(Context.PROVIDER_URL, url);
    return new InitialContext(env);
    }
    }
编撰

 org 
   QueueSend.java

 pwd

   /path-to/org
在组织内部创建类文件

 javac QueueSend.java

找不到或加载主类错误

然后我搬了进去

 java QueueSend t3://localhost:7001
执行相同的run命令并得到相同的错误。我知道我们必须使用
完全限定的名称
它是
org.QueueSend
,但我遗漏了一些东西


原因可能是什么?如何解决这个问题?

看起来像是一个打字错误——大写字母S


您的类和Java文件已发送。您的run命令具有Queuesend。

您必须调用
java-cp./org.Queuesend t3://localhost:7001
。包名是类名的一部分。还必须将实际路径添加到类路径,因此,jre的外观是针对类的。

java Queuesend t3
还是
java Queuesend t3
?您是否使用了完全限定名?@GopsAB我觉得很奇怪,您在使用WebLogic中间件时,不知道如何从命令行编译和运行java类。不管怎么说,这里有一个@Kayaman极大的侮辱。不过,谢谢。@GopsAB这不是侮辱。您正在处理一个高级问题,但是您首先遇到了这个问题,并且您发布了另一个涉及类路径问题的问题(因此我假设您成功运行了该程序?)。我给了你一个Oracle教程的链接,该教程解释了Netbeans和命令行编译/执行。很抱歉,这里有一个输入错误。不在我的编译器中。所以它没有help@GopsAB我改变了答案。您还必须将实际路径添加到类路径中。您能显示文件结构吗?类文件所在的位置包名是什么。@GopsAB,您从org所在的目录调用它吗?
 java QueueSend t3://localhost:7001
 cd org