Это будет правильно скомпилировано, однако в нем говорится, что в двух разных IDE нечего запускать

#java

Вопрос:

Это будет правильно скомпилировано, однако в нем говорится, что в двух разных IDE нечего запускать. В чем, по-видимому, здесь проблема. Я добавил строки, чтобы просто напечатать привет для устранения неполадок, но все равно ничего.

 import java.util.concurrent.*;  //Creates class public class project42 {  static class ExThread extends Thread {  //Variables are set  Semaphore sema;  String theName;   //  public ExThread(Semaphore sema, String theName) {  super(theName);  this.sema = sema;  this.theName = theName;  }   public void run() {  //test For Westbound  if (this.getName().equals("Westbound Cars")) {  try {  System.out.println(theName   " are waiting");  sema.acquire();  System.out.println(theName   " are attempting");  for (int i = 1; i lt; 6; i  ) {  System.out.println("Westbound: "   i   " is waiting");  Thread.sleep(1000);  System.out.println("Westbound: "   i   " has crossed");  Thread.sleep(1000);  }  } catch (InterruptedException exc) {  System.out.println(exc);  }  System.out.println(theName   " has crossed the bridge");  sema.release();  } else {  //Test for eastbound  System.out.println(theName   " are waiting");  try {  System.out.println(theName   " are waiting");  sema.acquire();  System.out.println(theName   " are attempting");  for (int i = 1; i lt; 6; i  ) {  System.out.println("Eastbound "   i   "is crossing");  Thread.sleep(1000);  System.out.println("Eastboud "   i   " is crossed");  Thread.sleep(1000);  }  } catch (InterruptedException exc) {  System.out.println(exc);  }  System.out.println(theName   " have crossed the bridge");  sema.release();  }  }   //main class  public static void main(String[] args) throws InterruptedException {  System.out.print("hi");  Semaphore sema = new Semaphore(1);  //creates cars  ExThread et1 = new ExThread(sema, "Westbound Cars");  ExThread et2 = new ExThread(sema, "WEastbound Cars");  //runs program  et1.start();  et2.start();   et1.join();  et1.join();  }  } }  

Ответ №1:

Там нечего запускать, так как ваш основной находится во внутреннем классе (ExThread). Он должен быть во внешнем классе (project42).

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

1. Я пытался переместить его, но безуспешно

2. O Я уверен, что будет больше, чем просто эта проблема, так как вам никогда раньше не удавалось запустить код, но перемещение main определенно решит проблему, упомянутую в вопросе. Если вы все еще не можете запустить его в своей среде разработки, вам, вероятно, нужно что-то решить в своей среде разработки. Не могу тебе сказать, что я не вижу твоей IDE.

3. это единственный файл, с которым он борется. поэтому я не думаю, что проблемы связаны с ide