2011-11-06 36 views
23

Trong khi tạo một thư mục trong thư mục src trong một dự án trong nhật thực, nó làm cho thư mục đó trở thành một gói. Có cách nào để tránh thư mục này tự động là một gói không? ví dụ: tôi thêm thư mục chính trong thư mục src. Tôi không muốn nó trở thành một gói. Tôi có thể làm cái này như thế nào?Thêm thư mục trong nhật thực trong thư mục src mà không cần gói nó

Giả sử tôi thêm thư mục theo cách này: src/main/org/apache. Tôi không muốn main.org.apache là một gói, thay vào đó, tôi muốn bao bì bắt đầu từ tổ chức. (ví dụ: org.apache).

Trả lời

28

Các lực lượng Eclipse bạn phân biệt giữa các thư mục nguồn và các thư mục thông thường. Bất kỳ thư mục con nào trong thư mục nguồn sẽ được coi là một gói.

Trong trường hợp của bạn, bạn có thể tạo thư mục thông thường bên ngoài src/ để ngăn các thư mục con không được hiểu là gói.

Hoặc, bạn có thể sửa đổi thuộc tính dự án để có src/ được coi là một thư mục thông thường và đặt thư mục nguồn bên trong nó.

Bạn có thể quản lý các thư mục mà trong một dự án được coi là thư mục nguồn bằng cách:

  1. phải nhấn dự án của bạn, sau đó nhấp vào Properties.
  2. Trong ngăn bên trái, hãy nhấp vào Java Build Path. Trong ngăn bên phải, chọn Source tab.
  3. Tại đây bạn có thể thêm/chỉnh sửa/xóa thư mục nguồn.
+0

Nhưng nếu chúng ta làm theo cách này và các tệp không còn được nhận dạng là "tệp src", thì làm cách nào để biên dịch và chạy/gỡ lỗi dự án (Ctrl F11)? – Pacerier

+0

Bạn nói đúng, tất cả mã của bạn vẫn cần phải đi vào các thư mục 'src' hoặc nó sẽ không được biên dịch. –

+1

Có cách nào để cấu hình Eclipse sao cho chúng ta có thể đặt các lớp trong một gói vào nhiều hơn một thư mục? – Pacerier

0

Bất kỳ thư mục nào trong thư mục src đều trở thành một gói. Nếu bạn muốn có một thư mục chính sau đó tạo một thư mục nguồn của tên chính và sau đó tạo ra các gói cần thiết trong thư mục chính.

11

Bạn cần truy cập Dự án -> Thuộc tính -> Đường dẫn xây dựng Java -> Nguồn (tab).

Di src từ "Source Folders trên Build Path"

Sau đó thêmsrc/main như một thư mục nguồn. Nếu bạn đã có org dưới chính, sau đó gói của bạn nên bắt đầu với org như mong muốn.

0

Khi bạn chạy một dự án Java trong nhật thực, thư mục làm việc hiện tại là thư mục gốc của dự án. Vậy tại sao không chỉ tạo thư mục tài nguyên của bạn ở đó?

ProjectDirectory 
../bin 
../src 
../resourceDirectory 

Sau đó, trong dự án của bạn, bạn có thể lấy resourceDirectory với

public File getDirectory(String dir) { 
    File cwdir = new File(".").getParentFile(); // remove the "." in path 
    for (File f : cwdir.listFiles()) { 
     if (f.isDirectory() && f.getName().equals(dir)) { 
      return f; 
     } 
    } 
    return null; 
} 

File resourceDir = getDirectory("resourceDirectory"); 
if (null == resourceDir) { 
    System.err.println("Resource directory not found"); 
    System.exit(-1); 
} 

Lưu ý: bạn có lẽ có thể muốn tạo một lớp tiện ích cho phương pháp getDirectory() , hoặc một cái gì đó tương tự. Đây chỉ là một ví dụ.

Điểm mấu chốt là ứng dụng rất có thể sẽ được khởi chạy ở vị trí cần thiết và bạn có thể chỉ sử dụng tệp khởi động (.bat, .sh, v.v.) để làm điều đó.Không cần phải đặt thư mục tài nguyên bên trong thư mục nguồn hoặc nhị phân của bạn; giữ chúng cách nhau.

3

Tôi đã thêm mẫu "Bị loại trừ" có giá trị ** vào "Đường dẫn xây dựng Java -> Nguồn -> src/main/resources" và gói của tôi trở thành một thư mục đơn giản trong Eclipse.

+0

Đây chính xác là những gì tôi đang tìm kiếm cảm ơn! – Potion

Các vấn đề liên quan