Не удалось найти или загрузить основной класс cmd - PullRequest
0 голосов
/ 08 февраля 2012

Я скомпилировал некоторый пример кода с помощью 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));
    }
}
}

Ответы [ 3 ]

3 голосов
/ 08 февраля 2012

У вас нет метода main в классе, а также при вызове вы должны дать donut.Board (заглавная B) Он чувствителен к регистру. Добавьте основной метод.

1 голос
/ 08 февраля 2012

Ваше имя класса Board начинается с заглавной буквы.

0 голосов
/ 11 марта 2015

Включите ваш основной метод в ваш класс Board, вы можете увидеть простой пример здесь: http://docs.oracle.com/javase/tutorial/java/concepts/class.html

Также измените java -cp . donut.board на java -cp . donut.Board

Как вы можете видеть в следующем коде, это класс, который сам по себе ничего не может сделать, это говорит о том, что вы можете делать с велосипедом, но вы не используете все это поведение

 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();
    }
}
...