2013-04-25 91 views
29

Tôi đang cố gắng chạy một số tệp java trong một dự án mới. Vì vậy, tôi làm cho dự án, đặt các tập tin trong đó và tôi cố gắng để chạy các tập tin chính để trò chơi của tôi bắt đầu.Lỗi: Lựa chọn không chứa loại chính

Tôi gặp lỗi nói selection does not contain a main type.

Tôi đã thử một số cách để chạy nó:

  • Một số người nói để khởi động eclipse lần nữa, cố gắng này một chục lần.
  • Một nơi nào đó có người khác chỉ định mở một dự án mới và tạo đường dẫn xây dựng cho dự án cũ.

Không hoạt động.

Tôi khá chắc chắn nó phải hoạt động vì tôi đã chạy nó vài giờ trước ở trường. Làm thế nào để tôi làm việc này? Cảm ơn bạn trước!

+11

Bạn có một 'public static void main (String [] args)' ở đâu không? – Zyerah

+1

Tôi có lớp "tên" công khai mở rộng JFrame – user2321611

+6

Bạn có thể trả lời câu hỏi của Telthiens :) –

Trả lời

19

Hy vọng bạn đang cố gắng để chạy các lớp học chính theo cách này thấy ảnh chụp màn hình: enter image description here

Nếu không thì hãy thử cách này và nếu có thì hãy chắc chắn rằng lớp của bạn, bạn sẽ chạy có phương pháp chính nghĩa là

public static void main(String[] args){ // some code here} 

cùng một định nghĩa. Hy vọng điều này sẽ giúp bạn.

6

Các điểm mấu chốt cho các chương trình Java là phương pháp:

public static void main(String[] args) { 
    //Code 
} 

Nếu bạn không có điều này, chương trình của bạn sẽ không chạy.

38

Các câu trả lời khác đều hợp lệ, tuy nhiên, nếu bạn vẫn gặp sự cố, bạn có thể không có lớp bên trong thư mục src trong trường hợp Eclipse không thể xem nó như là một phần của dự án. Điều này cũng sẽ gọi cùng một thông báo lỗi mà bạn đã thấy.

+10

Cảm ơn, các tệp không nằm trong thư mục src là vấn đề đối với tôi. – Dois

1

Bạn phải đặt tất cả các tệp của mình (file.java) trong thư mục gốc SRC.

3

Vài điều cần kiểm tra:

  1. Bạn có một gói chính? tất cả các lớp học của bạn có thuộc gói này không?
  2. Bạn có sử dụng một lớp chính với công cộng void chính chính (String [] args)?
  3. Bạn khai báo: gói; trong lớp học chính của bạn?
  4. Bạn luôn có thể làm sạch dự án trước khi chạy. Trong Eclipse - Chỉ cần vào Project -> clean sau đó chạy lại ứng dụng.
26

Nhấp chuột phải vào thư mục nơi bạn đặt lớp chính, sau đó nhấp vào Build Path ->Use as Source Folder.

Cuối cùng chạy tệp chính của bạn dưới dạng ứng dụng java. Hy vọng vấn đề này sẽ được giải quyết.

5

Tôi đã giải quyết vấn đề này bằng cách thêm thư mục nguồn mới và đặt tệp java của tôi vào trong thư mục đó. "thư mục nguồn" không chỉ là bất kỳ thư mục nào mà tôi tin.một số loại thư mục đặc biệt cho java/eclipse và có thể được thêm vào nhật thực bằng cách nhấp chuột phải vào project -> properties -> Java buld path -> Source và thêm một thư mục

0

Tôi gặp vấn đề tương tự và thấy rằng là một cặp dấu ngoặc bổ sung (dấu ngoặc nhọn) bao quanh công cộng chính void void (String args) {...}. Phương pháp này thực sự nên ở phạm vi hàng đầu trong lớp và không nên được bao quanh bởi niềng răng. Dường như có thể kết thúc với các dấu ngoặc ôm xung quanh phương thức này khi làm việc trong Eclipse. Điều này có thể chỉ là một cách bạn có thể thấy vấn đề này khi làm việc với Eclipse. Chúc mừng mã hóa!

0

Tôi đã thực hiện điều này nhiều lần sau khi thêm hình ảnh vào một dự án trong Eclipse và biến chúng trở thành một phần của đường dẫn xây dựng. Giải pháp là nhấp chuột phải vào lớp chứa phương thức main và sau đó chọn Chạy dưới dạng -> Ứng dụng Java. Có vẻ như khi bạn thêm một tệp vào đường dẫn xây dựng, Eclipse sẽ tự động giả định rằng tệp đó là nơi mà phương thức main là. Bằng cách đi qua menu Run As thay vì chỉ cần nhấp vào nút Run As màu xanh lục, nó cho phép bạn chỉ định đúng điểm vào.

+0

Nếu nó nói điều này mặc dù có * là * một phương pháp chính? – trusktr

3

Tôi đã gặp sự cố tương tự. Tôi cố định bằng cách nhấp chuột phải vào gói -> properties -> Java Build Path -> Thêm thư mục (chọn thư mục chứa mã của bạn).

+0

Trừ khi đây là phiên bản khác, 'gói' phải là' dự án' trong đường dẫn ở trên của bạn. – Carcigenicate

0

Khi bạn lưu tệp của mình, hãy đảm bảo tệp có phần mở rộng .java. Nếu không, Eclipse sẽ không biết đọc nó như là một tệp java.

1

Tôi đang chạy nhật thực từ Ubuntu. Đã có cùng một vấn đề này và đã có thể chạy chương trình thông qua thiết bị đầu cuối. Vì vậy, tôi chỉ cần di chuyển public static void main(String[] args) { hiện tại ngay bên dưới khai báo lớp (nó được tự động định dạng bằng nhật thực) và lần khởi chạy tiếp theo đã thành công. Sau đó di chuyển phương pháp chính trở lại nơi nó đã được trước và nó làm việc tốt thời gian này.