Tôi đã gặp sự cố tương tự và chỉ ra rằng vì không có bộ đệm Jython độc lập hỗ trợ bộ nhớ đệm, nó cũng không hỗ trợ phương pháp "nhập *". này không được ghi lại rõ ràng bất cứ nơi nào trong tài liệu chính thức Jython, nhưng tôi đã kết luận này dựa trên một số báo cáo lỗi khác nhau:
Đáng chú ý từ liên kết sau cùng:
Vì vậy, như Oti lưu ý, trong độc lập, bạn phải nhập khẩu đầy đủ để thành công.
Để khắc phục sự cố của bạn, sử dụng jython không độc lập.jar được tạo bằng cách cài đặt jython bằng cách sử dụng tùy chọn 'Chuẩn'.
Nếu bạn muốn đóng gói và phân phối jython.jar với ứng dụng của bạn, trong trường hợp người dùng không cài đặt Jython, bạn cũng cần copy/pase thư mục "Lib" hoàn chỉnh từ thư mục cài đặt jython vào vị trí bạn kết thúc đặt jython.jar. Điều này cho phép truy cập vào stdlib python không được bao gồm trong tệp jar chuẩn.
CẬP NHẬT: Sau khi phát xung quanh nhiều hơn, tôi nghĩ mình có thể khắc phục để nhập nhập "nhập *" ngay cả khi sử dụng bình độc lập. Tất cả những gì cần phải làm là kích hoạt bộ nhớ đệm!
Bạn có thể làm việc này bằng cách bổ sung thêm các tùy chọn sau đây để JVM khi chạy Jython:
-Dpython.cachedir.skip = sai -Dpython.cachedir = MONG MUỐN CACHE PATH
(Lưu ý rằng đối số thứ hai là tùy chọn và nếu để trống, giá trị mặc định sẽ được sử dụng)
Nếu bạn gặp sự cố khi chạy InteractiveConsole được nhúng trong ứng dụng (đó là w mũ vấn đề của tôi là), bạn có thể thêm các thuộc tính này trước khi khởi chạy bảng điều khiển:
Properties props = new Properties();
props.put("python.cachedir.skip", "false");
props.put("python.cachedir", "DESIRED CACHE PATH"); // again, this option is optional
InteractiveConsole.initialize(System.getProperties(), props, new String[0]);
Đây là câu hỏi/vấn đề rất phổ biến. Bất kỳ cơ hội nào bạn sẽ thay đổi tiêu đề thành "Tại sao Jython từ chối tìm gói Java của tôi?" theo cách đó nhiều người có thể sẽ tìm thấy điều này. –
Tôi đã đổi tên - bạn nói đúng, điều này có thể xảy ra với bất kỳ ai. – MikeHoss
Cảm ơn bạn đã đổi tên! –