2012-11-01 44 views
9

Tôi đã chạy các tệp Java .java riêng lẻ khác nhau trong IDE Netbeans bằng cách nhấp chuột phải vào các tệp .java trong Project Explorer của Netbeans (phần bình thường ở phần trên bên trái của Netbeans).Cách chạy tệp .class Java từ tệp .class khác? (java newb)

Tuy nhiên, tôi đã googling về cách làm cho một tệp lớp chạy một tệp lớp khác bằng mã, nhưng không có kết quả.

tôi có một dự án có tên "loadanotherfile" với 2 tác phẩm, cụ thể là: Loadanotherfile.java và otherfile.java

Tôi đang cố gắng để làm cho Loadanotherfile.java chạy otherfile.java, nhưng tôi không chắc chắn chính xác làm sao. Tôi đọc về Classloaders và URLClassloaders tuy nhiên những phương pháp này dường như không phù hợp với mục đích của tôi để chạy một tập tin .java khác.

Dưới đây là mã của 2 tệp tôi đã đề cập.

Loadanotherfile.java

package loadanotherfile; 

public class Loadanotherfile { 

    /** 
    * @param args the command line arguments 
    */ 
    public static void main(String[] args) { 
     System.out.println("Hello World!"); 
     // TODO code application logic here 
    } 
} 

otherfile.java

package loadanotherfile; 

public class otherfile { 

    public static void main(String args[]) 
    { 
     System.out.println("This is the other file."); 
    } 
} 

Tôi có một cảm giác rằng nhiệm vụ có cái gì để làm với việc sử dụng "nhập khẩu" cú pháp (cụ thể là cái gì đó như import loadotherfile. * nhưng ngay cả khi dự đoán của tôi là chính xác, tôi vẫn không chắc chắn về cách làm cho Loadanotherfile.java của tôi chạy tệp tin khác .java sử dụng mã.

Làm cách nào để tải otherfile.java bằng Loadanothefile.java?

Cheers

+1

Mục đích của chạy tập tin lớp khác là không rõ ràng. Để nạp một lớp trong bộ nhớ, bạn có thể sử dụng phương thức 'Class.forName (" className ");' bằng cách chỉ định tên của lớp như một tham số. – Chaitanya

Trả lời

10

Trong Loadanotherfile.java

otherfile.main(args); 
+0

Điều này đã làm các trick. Cảm ơn! –

7

Biên dịch hai với nhau, và sau đó từ Loadanotherfile,

otherfile.main(args); 

sẽ làm các trick. Bạn không cần nhập vì bạn đang ở trong cùng một package. Lưu ý hướng dẫn được liên kết.

Tôi sẽ điều tra (tuy nhiên) thuyết trình lớp và tạo một thể hiện của một lớp mới để gọi. Việc gọi các phương thức tĩnh từ các phương thức tĩnh không phải là rất OO.

+0

có, điều này đã làm các trick, cũng đã phải thêm một dòng tương tự như câu trả lời của Matt Clark (otherfile otherFile = new otherfile();) cảm ơn! –

+0

@LastManStanding Bạn sẽ không phải thêm dòng thừa đó. Nó sẽ hoạt động mà không có điều đó. – maba

+0

@LastManStanding, nếu bạn phải làm điều đó, thì 'main()' từ 'otherfile' không phải là' static' như bạn đã nói. – rid

2

Hãy thử này:

className.main(Args){ 
} 

này hoạt động! tôi đã tự mình thử nghiệm nó.

0

Kiểm tra đường dây public void main. Nếu có IOException và không có sau đó chèn trong Loadanotherfile.java

sử dụng này

otherfile.main(args);{ 
} 
Các vấn đề liên quan