Oracle
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Oracle

Hiểu về Java của Oracle trên Mac

Oracle's JVM chỉ được cài đặt ở một vị trí. Bạn đã nhầm lẫn!

Như bạn đã lưu ý, các lệnh Java trong /usr/bin là các liên kết tượng trưng đến các tệp nhị phân trong /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands . Các tệp nhị phân trong thư mục đó là các ứng dụng sơ khai xác định máy ảo Java nào sẽ sử dụng *, sau đó thực thi tệp nhị phân thực tương ứng trong phiên bản máy ảo đó. Đây là lý do tại sao tất cả các mã nhị phân trong /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands có kích thước gần như giống hệt nhau, mặc dù thực tế là bạn mong đợi chúng triển khai các chức năng khá khác nhau.

Bạn có thể thấy điều này thực tế bằng cách sử dụng dtrace :

[email protected]:~$ sudo dtrace -n 'syscall::posix_spawn:entry { trace(copyinstr(arg1)); }' -c "/usr/bin/java -version"
dtrace: description 'syscall::posix_spawn:entry ' matched 1 probe
dtrace: pid 44727 has exited
CPU     ID                    FUNCTION:NAME
  8    619                posix_spawn:entry   /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home/bin/java

dtrace đã cho lệnh gọi in ra đối số đường dẫn tới posix_spawn khi nó được gọi bằng java -version . Trong trường hợp của tôi, ứng dụng sơ khai đã tìm thấy thời gian chạy Java 1.6 của Apple trong /System/Library/Java/JavaVirtualMachines/1.6.0.jdk và đang gọi phiên bản đó của java lệnh.

Các mã nhị phân sơ khai cũng có một lợi ích khác:khi chúng phát hiện không có máy ảo Java nào được cài đặt, chúng sẽ nhắc người dùng cài đặt một chương trình.

Đối với CurrentJDK liên kết biểu tượng, tốt nhất tôi có thể nói điều này vì lợi ích tương thích ngược với quá khứ khi Apple là nguồn duy nhất của JVM trên OS X.

* Sự kết hợp của các yếu tố được xem xét khi xác định máy ảo Java nào nên được sử dụng. JAVA_HOME được sử dụng nếu được đặt (thử JAVA_HOME=/tmp java ). Nếu JAVA_HOME không được thiết lập thì danh sách tất cả các máy ảo trên hệ thống sẽ được phát hiện. JAVA_VERSIONJAVA_ARCH Các biến môi trường được sử dụng, nếu được đặt, để lọc danh sách các máy ảo theo một phiên bản cụ thể và kiến ​​trúc được hỗ trợ. Sau đó, danh sách kết quả được sắp xếp theo kiến ​​trúc (ưu tiên 64 bit hơn 32 bit) và phiên bản (mới hơn thì tốt hơn) và kết quả phù hợp nhất sẽ được trả về.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cách định dạng ngày trong Oracle

  2. Hàm COSH () trong Oracle

  3. Lệnh Spool:Không xuất câu lệnh SQL vào tệp

  4. Xuất dữ liệu sang Excel từ bảng Oracle bằng PL SQL

  5. Sự khác biệt giữa mệnh đề ON và WHERE trong phép nối bảng SQL