ошибка java no main classes found, когда программа сообщила об успешной сборке

#java #netbeans

#java #netbeans

Вопрос:

Привет, в настоящее время я выполняю эту программу для моего задания создать что-то вроде виртуального магазина. В настоящее время я использую NetBean IDE 8.1 и получил ошибку при попытке протестировать программу. Это сказано, хотя программа сообщила об успешной сборке, когда я пытался собрать программу.

Я пытался следовать инструкциям в этом видео, но здесь изображение оказалось пустым

Вот моя основная программа (я еще не завершил программу, но эта ошибка продолжает блокировать меня для ее тестирования)

 import java.util.Scanner;
 public class Zarashop {
 int choice;
 public static void main(String[] args, int clothA){
    Scanner absorb = new Scanner(System.in);

    // phase 1 login
    cloth cl = new cloth(); // declaring objects
    payment pay = new payment();
    personalinfo pi = new personalinfo();
    shipping ship = new shipping();
    receipt re = new receipt();
    System.out.println("Welcome to Zara's cloth Shopping Center");
    System.out.println("nThis an online Shopping application will help you to buy "  "a new cloth");
    System.out.println("Please enter your detail");
     System.out.println("nPlease enter your name");
     String Name = absorb.nextLine(); // user input name
     System.out.println("nAre you a student? (yes) or (no)");
     String personalchoice = absorb.nextLine(); // user input status


     //phase 2
     System.out.println("please choose your cloth" );
     System.out.println("cloth A detail : size: 170cm and red color  ");
     int cloathA = absorb.nextInt(); 
     System.out.println("enter quantity  ");
     int quantity = absorb.nextInt(); 

     pay.setclothA(clothA); // store value
     pay.setquantity(quantity); 

     // phase 3 payment
     System.out.println("please press 1 to calculate your payment");
     int choice = absorb.nextInt();
     if(choice == 1){
         pay.total();    
     }
     else {
    System.err.println("error!");
  } 
   }





    }
  

Вот мой основной класс для cloth (предполагалась ошибка в написании)

    public class cloth {

  // superclass
   private int quantity; //  
 private int  clothA=200;
 //void
 void setclothA(int ca){
     clothA = ca;
 }
void setquantity(int q){
    quantity=q;
}

//get

int getclothA(){
    return clothA;
}
int getquantity(){
    return quantity;
    }

  }
  

мой основной класс для PersonalInfo

  public class personalinfo {

// superclass
public String Name; 
private int Password; 
private String TypeCard; 
private int CardNo;   
private String Address; 
private int TeleNo;   

//void


void setName(String n){
    Name = n;
}
void setPassword(int p){
    Password = p;
}
void setTypeCard(String tp){
    TypeCard = tp;
}
void setCardNo ( int cn){
    CardNo=cn;
}
void setAddress ( int a){
    CardNo=a;
}
void setTeleNo ( int tl){
    TeleNo=tl;
}
   //get

String getName(){
    return Name;

}
String getAddress(){
    return Address;
  }
     int getPassword(){
         return Password;
     }
     String getTypeCard(){
         return TypeCard;
     }
     int getCardNo(){
         return CardNo;
     }
     int getTeleNo (){
         return TeleNo;
     }
  }
  

мой подкласс для оплаты
магазин пакетов zarashop;

   //subclass
  public class payment extends cloth {
 String Status = "Initial";
public void total(){

int ca = super.getclothA(); //fetching values
int q = super. getquantity();
int total= q*ca;

  }
 }



    public class receipt extends shipping{



}
  

мой заменитель для отправки

 public class shipping extends payment  {
public int typeofshipping; 
//void 
void settypeofshipping(String ts){
    String typeofshipping = ts;
   }
  int gettypeofshipping(){
        return typeofshipping;
  } 
   }
  

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

  public class receipt extends shipping{



 }
  

спасибо всем и извините за мою плохую программу и мой английский.

Комментарии:

1. Предполагается, что основной метод должен быть public static void main(String[]) , а не public static void main(String[], int) .

2. если вы получили ответ на свой вопрос, вы должны принять его, отметив лучший для вас ответ галочкой.

Ответ №1:

Приложение Java может принимать любое количество аргументов из командной строки, и все они интерпретируются как String , вот почему main принимает только массив строк в качестве параметра.

Измените свой код на

 public static void main(String[] args)
  

и вы сможете запустить свое приложение.

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

 int firstArg;
if (args.length > 0) {
    try {
        firstArg = Integer.parseInt(args[0]);
    } catch (NumberFormatException e) {
        System.err.println("Argument"   args[0]   " must be an integer.");
        System.exit(1);
    }
}
  

parseInt выдает исключение NumberFormatException, если формат аргументов [0] недопустим.

Пример взят из официальной документации.

Ответ №2:

Вот ваша ошибка: public static void main(String[] args**, int clothA**)

Измените ее на public static void main(String[] args)

Ответ №3:

Вам нужно будет изменить ваш основной метод на public static void main(String[] args) . Добавляя int clothA в качестве второго аргумента, вы изменяете подпись, и тогда она становится недопустимым основным методом для запуска вашего приложения.

Если вы хотите получить что-либо из консоли, вы найдете свой аргумент внутри args.

Затем вы можете извлечь clothA следующим образом:

 int clothA;
if (args.length > 0) {
    try {
        clothA = Integer.parseInt(args[0]);
    } catch (NumberFormatException e) {
        System.err.println("Argument"   args[0]   " must be an integer.");
        System.exit(1);
    }
}
  

Комментарии:

1. Спасибо всем!