编程就是n踢r 2023-10-26 15:37 采纳率: 33.3%
浏览 11

运行java的class文件时提示找不到主类

运行java的class文件时提示找不到主类

package com.essc.module_b.common.testMq2;

import com.rabbitmq.client.*;

import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.HashMap;
import java.util.concurrent.TimeoutException;

/**
 * @Author:xsr
 * @Date:2023/10/26 15:09
 * 模拟worker 执行task
 */
public class Worker {
    public static void main(String[] args) throws IOException, TimeoutException {
        ConnectionFactory connectionFactory = new ConnectionFactory();
        connectionFactory.setHost("116.62.176.248");
        connectionFactory.setPort(5672);
        connectionFactory.setVirtualHost("/");
        connectionFactory.setUsername("admin");
        connectionFactory.setPassword("123");
        //创建一个通道 channel
        Connection connection = connectionFactory.newConnection();
        Channel channel = connection.createChannel();
        //根据channel创建一个队列queue
        String queueName="xsrQueue";
        channel.queueDeclare(queueName,false,false,false,new HashMap<String,Object>());
        //等待接收 阻塞
        System.out.println("worker 正在等待 接收 消息");
        //callback 监听queue 若有消息进来 通过handle函数进行处理
        DeliverCallback deliverCallback= (consumerTag, delivery) -> {
            //从delivery获取message byte[]
            byte[] bodyBytes = delivery.getBody();
            String message = new String(bodyBytes, StandardCharsets.UTF_8);
            System.out.println("rece 接收到了一条消息:---"+message);
            try {
                doWork(message);
            }catch (InterruptedException e) {
                throw new RuntimeException("worker doWork失败",e);
            } finally {
                System.out.println(" [worker] Done");
            }
        };
        CancelCallback cancelCallback = s -> System.out.println(": 当消费者取消订阅时,将调用此方法:cancelCallback的handle执行");
        //channel 消费消息
        channel.basicConsume(queueName,true,deliverCallback,cancelCallback);
    }

    private static void doWork(String task) throws InterruptedException {
//        每个点将占一秒钟的“工作”
        for (char c:task.toCharArray()){
            if(c=='.'){
                Thread.sleep(1000);
            }
        }
    }
}

运行下面命令 编译生成class文件
D:\idea_project\ESSC_REAR\src\main\java\com\essc\module_b\common\testMq2> javac -cp "D:\maven\CSSC_repository\com\rabbitmq\amqp-client\5.12.0\amqp-client-5.12.0.jar" Worker.java -encoding UTF-8
生成成功

img

然后执行class命令报错:找不到主类

img


已经尝试的解决方法:

  • 删除package包,重新javac,java
  • 返回一级目录去javac,然后java
  • 写回答

2条回答 默认 最新

  • Huazie 全栈领域优质创作者 2023-10-26 15:42
    关注

    NewTask 才是你的主类啊, 编译 NewTask,再去运行
    java命令运行,不要加 .class 后缀。

    评论

报告相同问题?

问题事件

  • 修改了问题 10月26日
  • 创建了问题 10月26日

悬赏问题

  • ¥15 is not in the mmseg::model registry。报错,模型注册表找不到自定义模块。
  • ¥15 安装quartus II18.1时弹出此error,怎么解决?
  • ¥15 keil官网下载psn序列号在哪
  • ¥15 想用adb命令做一个通话软件,播放录音
  • ¥30 Pytorch深度学习服务器跑不通问题解决?
  • ¥15 部分客户订单定位有误的问题
  • ¥15 如何在maya程序中利用python编写领子和褶裥的模型的方法
  • ¥15 Bug traq 数据包 大概什么价
  • ¥15 在anaconda上pytorch和paddle paddle下载报错
  • ¥25 自动填写QQ腾讯文档收集表