Cách tốt nhất để tìm hiểu là thử và xem; ví dụ. sử dụng java -verbose.
để chạy chương trình tối thiểu bằng nhiều ngôn ngữ được lưu trữ trên máy chủ JVM.
Nhưng câu trả lời là có khả năng là:
- phiên bản JVM cụ thể, và
- ngôn ngữ lập trình cụ thể.
Tôi cũng nên chỉ ra rằng (các) câu trả lời mà bạn nhận được sẽ không được sử dụng thực tế (... trừ khi bạn có kế hoạch tạo một JRE bị cắt giảm. Và nếu đúng như vậy, hãy đọc theo dõi bên dưới.)
Bạn có biết tất cả các lớp học là cần thiết hay VM cũng nạp trước các lớp mà ứng dụng mong muốn sử dụng trong mọi trường hợp theo ứng dụng?
JVM không tải trước mọi thứ trên cơ sở đó. Thay vào đó, nó tải đóng cửa phụ thuộc của mã của bạn tĩnh phụ thuộc vào. Tùy thuộc vào loại ứng dụng của bạn sử dụng, điều này có thể dẫn đến các lớp đang được tải mà không thực sự được sử dụng. Các kỹ sư Sun đã làm rất nhiều công việc để thử và giảm hiệu ứng này trong những năm qua, nhưng nó không nghi ngờ vẫn xảy ra ở một mức độ nào đó.
THEO UP
Reading giữa các dòng, có vẻ như mục đích là tạo ra một JVM gói cắt xuống để hỗ trợ các yêu cầu thời gian chạy của một số ngôn ngữ khác.Nếu vậy, hãy xem xét những điểm sau:
Có giấy phép yêu cầu về những gì bạn có thể làm với Java vis-a-vis việc tạo ra các phiên bản cắt giảm xuống. Cụ thể, Java, JVM và JRE là các thuật ngữ đã đăng ký nhãn hiệu và Oracle có thể sẽ xuất hiện sau khi bạn sử dụng chúng trong ngữ cảnh của một JRE bị cắt giảm. (Tôi không nói rằng bạn không thể làm điều đó, nhưng bạn do cần phải kiểm tra các khía cạnh pháp lý cho chính mình.)
Có những vấn đề hỗ trợ chắc chắn. Ví dụ, bạn cần phải theo dõi bất kỳ vấn đề bảo mật Java/JVM có liên quan và các bản vá lỗi và tạo ra các phiên bản mới của nền tảng cơ sở của bạn như được reuired.
Nếu bạn dự định cung cấp bất kỳ cách nào cho các chương trình ứng dụng bằng ngôn ngữ mới của bạn để gọi thư viện Java, thì việc sử dụng JRE bị cắt giảm có thể là một cơn đau nghiêm trọng ở mặt sau cho một số người dùng. Đặc biệt là nếu bạn đóng gói các công cụ của bạn theo cách có nghĩa là họ phải sử dụng JRE bị cắt giảm của bạn.
Có các công cụ trong JRE/JDK có thể hữu ích cho bạn/người dùng của bạn. Các công cụ như profilers, debuggers, lệnh JAR, v.v. JRE của bạn sẽ cần bao gồm tất cả các lớp cần thiết để chạy chúng.
Cuối cùng, tải xuống 100Mb không phải là vấn đề quan trọng đối với CHỦ ĐỀ VAST của người dùng. Và nếu có, bạn có thể kiếm được một chút tiền để hỗ trợ dự án của mình bằng cách bán DVD cài đặt.
Tập trung vào bất cứ điều gì bạn đang thực sự cố gắng làm ở đây ... và để tối ưu hóa trình cài đặt khi bạn có chất lượng sản xuất để tối ưu hóa.
Nguồn
2010-11-08 01:04:20
Có lẽ phụ thuộc vào ý bạn là "khởi động" VM. Nó có phải bao gồm một trình nạp lớp cộng với các phụ thuộc, để tải một chương trình không? –
Tại sao thẻ này được gắn thẻ là 'ngôn ngữ bất khả tri'? – casablanca
Vì JVM chỉ thực thi bytecode. Có nhiều ngôn ngữ và trình biên dịch có thể tạo ra bytecode đó. – soc