【问题标题】:Could not find or load main class cmd无法找到或加载主类 cmd
【发布时间】:2012-02-08 10:32:14
【问题描述】:

我用 javac 编译了一些示例代码,当我尝试运行它时,我得到了:

C:\Users\Lenis>cd C:\Java\2D

C:\Java\2D>java donut.board
Error: Could not find or load main class donut.board

我试过写“java -cp . donut.board”,结果还是一样。

我的类路径是:“C:\Program Files\Java\jdk1.7.0_02\lib\tools.jar;.”

如何解决?

这里是代码:

package donut;

import java.awt.BasicStroke;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.Graphics;
import java.awt.Graphics2D;
import java.awt.RenderingHints;
import java.awt.geom.AffineTransform;
import java.awt.geom.Ellipse2D;
import javax.swing.JPanel;

public class Board extends JPanel{

public void paint(Graphics g)
{
  super.paint(g);

  Graphics2D g2 = (Graphics2D) g;

  RenderingHints rh =
        new RenderingHints(RenderingHints.KEY_ANTIALIASING,
                           RenderingHints.VALUE_ANTIALIAS_ON);

  rh.put(RenderingHints.KEY_RENDERING,
         RenderingHints.VALUE_RENDER_QUALITY);

  g2.setRenderingHints(rh);

  Dimension size = getSize();
  double w = size.getWidth();
  double h = size.getHeight();

  Ellipse2D e = new Ellipse2D.Double(0, 0, 80, 130);
  g2.setStroke(new BasicStroke(1));
  g2.setColor(Color.gray);


  for (double deg = 0; deg < 360; deg += 5) {
      AffineTransform at =
          AffineTransform.getTranslateInstance(w / 2, h / 2);
      at.rotate(Math.toRadians(deg));
      g2.draw(at.createTransformedShape(e));
    }
}
}

【问题讨论】:

    标签: java cmd load find


    【解决方案1】:

    你在类中没有 main 方法,并且在调用时你必须给 donut.Board (大写 B) 它是区分大小写的。添加main方法。

    【讨论】:

      【解决方案2】:

      您的班级名称Board 以大写开头。

      【讨论】:

        【解决方案3】:

        在 Board 类中包含你的 main 方法,你可以在这里看到一个简单的例子:http://docs.oracle.com/javase/tutorial/java/concepts/class.html

        还将java -cp . donut.board 更改为java -cp . donut.Board

        正如您在下面的代码中看到的,这是一个本身不能做任何事情的类,这只是说明您可以对 Bicycle 做什么,但您并没有使用所有这些行为

         class Bicycle {
            int cadence = 0;
            int speed = 0;
            void changeCadence(int newValue) {
                 cadence = newValue;
            }
            void speedUp(int increment) {
                 speed = speed + increment;   
            }
            void applyBrakes(int decrement) {
                 speed = speed - decrement;
            }
            void printStates() {
                 System.out.println("cadence:" +
                     cadence + " speed:" + 
                     speed );
            }
        } 
        

        所以如果你想使用这个类,你可以创建另一个包含 main 方法的类,现在你实际上是在使用你在上一个类中赋予 Bicycle 的所有行为

        class BicycleDemo {
            public static void main(String[] args) {
               Bicycle bike1 = new Bicycle();
                Bicycle bike2 = new Bicycle();
        
                bike1.changeCadence(50);
                bike1.speedUp(10);
                bike1.printStates();
        
                bike2.changeCadence(50);
                bike2.speedUp(10);
                bike2.changeCadence(40);
                bike2.speedUp(10);
                bike2.printStates();
            }
        }
        

        【讨论】:

        • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接的答案可能会失效。
        • @Rick 感谢您的评论,我将添加一些代码来改进答案:)
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-10-19
        • 1970-01-01
        • 2012-09-13
        • 1970-01-01
        • 2019-01-05
        相关资源
        最近更新 更多