OSHI เป็นระบบปฏิบัติการ JNA (ดั้งเดิม) และไลบรารีข้อมูลฮาร์ดแวร์ฟรีสำหรับ Java ไม่จำเป็นต้องติดตั้งไลบรารีเนทีฟเพิ่มเติมใดๆ และมีเป้าหมายเพื่อให้มีการใช้งานข้ามแพลตฟอร์มเพื่อดึงข้อมูลระบบ เช่น เวอร์ชันระบบปฏิบัติการ กระบวนการ การใช้งานหน่วยความจำและ CPU ดิสก์และพาร์ติชัน อุปกรณ์ เซ็นเซอร์ ฯลฯ
- แพลตฟอร์มที่รองรับ
- การดาวน์โหลดและการจัดการการพึ่งพา
- เอกสารประกอบ
- การใช้งาน
- คุณสมบัติที่รองรับ
- สนับสนุน
- OSHI สำหรับองค์กร
- ข้อมูลติดต่อด้านความปลอดภัย
- สถานะการทดสอบการรวมอย่างต่อเนื่อง
- ฉันจะช่วยได้อย่างไร?
- มีส่วนร่วมกับ OSHI
- รับทราบ
- ใบอนุญาต
แพลตฟอร์มที่รองรับ
- หน้าต่าง
- ระบบปฏิบัติการ macOS
- ลินุกซ์ (แอนดรอยด์)
- ยูนิกซ์ (AIX, FreeBSD, OpenBSD, Solaris)
เอกสารประกอบ
- API (จาวาดอค)
- คำถามที่พบบ่อย
- เปลี่ยนบันทึก
- การพิจารณาประสิทธิภาพ
- เวอร์ชันหลักที่ทำลายการเปลี่ยนแปลง
- ผลลัพธ์ตัวอย่าง
- แอปพลิเคชันและโครงการที่ใช้ OSHI
การดาวน์โหลดและการจัดการการพึ่งพา
เวอร์ชันวางจำหน่ายที่เสถียร
- JDK8: oshi-core-6.6.5
- JPMS: oshi-core-java11-6.6.5
- JDK6: oshi-core-3.14.0
ดาวน์โหลดการพัฒนาปัจจุบัน (SNAPSHOT)
- JDK8: oshi-core-6.6.6-SNAPSHOT
- JPMS: oshi-core-java11-6.6.6-SNAPSHOT
การใช้งาน
- รวม OSHI และการขึ้นต่อกันใน classpath ของคุณ
- เราขอแนะนำอย่างยิ่งให้คุณเพิ่ม
oshi-core
เป็นการพึ่งพาให้กับตัวจัดการการพึ่งพาโปรเจ็กต์ของคุณ เช่น Maven หรือ Gradle - สำหรับ Android คุณจะต้องเพิ่มสิ่งประดิษฐ์ AAR สำหรับ JNA และยกเว้นการพึ่งพาสกรรมกริยา (JAR) ของ OSHI
- ดูคำถามที่พบบ่อยหากคุณพบปัญหา
NoClassDefFoundError
หรือ NoSuchMethodError
- สร้างอินสแตนซ์ใหม่ของ
SystemInfo
- ใช้ getters จาก
SystemInfo
เพื่อเข้าถึงฮาร์ดแวร์หรือส่วนประกอบระบบปฏิบัติการ เช่น:
SystemInfo si = new SystemInfo ();
HardwareAbstractionLayer hal = si . getHardware ();
CentralProcessor cpu = hal . getProcessor ();
ดูตัวอย่าง SystemInfoTest.java หากต้องการดูตัวอย่างผลลัพธ์สำหรับเครื่องของคุณ:
git clone https://github.com/oshi/oshi.git && cd oshi
./mvnw test-compile -pl oshi-core exec:java
-Dexec.mainClass= " oshi.SystemInfoTest "
-Dexec.classpathScope= " test "
การตั้งค่าบางอย่างสามารถกำหนดได้ในไฟล์ oshi.properties
ซึ่งอาจจัดการได้โดยใช้คลาส GlobalConfig
ซึ่งควรทำเมื่อเริ่มต้นระบบ เนื่องจากการกำหนดค่าไม่ปลอดภัยต่อเธรด และ OSHI ไม่รับประกันว่าจะอ่านการกำหนดค่าซ้ำระหว่างการทำงาน
สิ่งประดิษฐ์ oshi-demo
มีตัวอย่างการพิสูจน์แนวคิดหลายประการของการใช้ OSHI เพื่อรับข้อมูล รวมถึง Swing GUI พื้นฐาน
คุณสมบัติที่รองรับ
- ระบบคอมพิวเตอร์และเฟิร์มแวร์, กระดานข้างก้น
- ระบบปฏิบัติการและเวอร์ชัน/บิลด์
- CPU ฟิสิคัล (คอร์) และโลจิคัล (ไฮเปอร์เธรด) กลุ่มโปรเซสเซอร์ โหนด NUMA
- โหลดของระบบและต่อโปรเซสเซอร์ ตัวนับการใช้งาน การขัดจังหวะ เวลาทำงาน
- ช่วงเวลาทำงานของกระบวนการ, CPU, การใช้หน่วยความจำ, ผู้ใช้/กลุ่ม, อาร์กิวเมนต์บรรทัดคำสั่ง, รายละเอียดเธรด
- หน่วยความจำกายภาพและเสมือนที่ใช้/มีอยู่
- ระบบไฟล์ที่เมาท์ (ประเภท, พื้นที่ใช้งานและพื้นที่ทั้งหมด, ตัวเลือก, การอ่านและเขียน)
- ดิสก์ไดรฟ์ (รุ่น, อนุกรม, ขนาด, อ่านและเขียน) และพาร์ติชัน
- อินเทอร์เฟซเครือข่าย (IP, แบนด์วิธเข้า/ออก), พารามิเตอร์เครือข่าย, สถิติ TCP/UDP
- สถานะแบตเตอรี่ (% ความจุ, เวลาที่เหลืออยู่, สถิติการใช้พลังงาน)
- อุปกรณ์ USB
- จอแสดงผลที่เชื่อมต่อ (พร้อมข้อมูล EDID) กราฟิก และการ์ดเสียง
- เซ็นเซอร์ (อุณหภูมิ ความเร็วพัดลม แรงดันไฟฟ้า) บนฮาร์ดแวร์บางตัว
สนับสนุน
- สำหรับรายงานข้อผิดพลาด คำขอคุณสมบัติ หรือคำถามทั่วไปเกี่ยวกับแผนระยะยาวของ OSHI โปรดสร้างปัญหา
- หากต้องการความช่วยเหลือในการรวม OSHI เข้ากับโปรเจ็กต์ของคุณเองหรือการตรวจสอบโค้ดของผู้ดูแล PR ของคุณ ให้แท็ก
@dbwiddis
ในประเด็นหรือดึงคำขอบนไซต์โปรเจ็กต์ของคุณ - สำหรับคำถาม "วิธีการ" เกี่ยวกับการใช้ API โปรดดูตัวอย่างในโปรเจ็กต์
oshi-demo
สร้างปัญหา หรือค้นหาใน Stack Overflow โดยใช้แท็ก oshi
และถามคำถามใหม่หากยังไม่เคยได้รับคำตอบมาก่อน - เพื่อเป็นการขอบคุณผู้ดูแลหลักของ OSHI คุณสามารถสนับสนุนหรือซื้อกาแฟให้เขาได้
OSHI สำหรับองค์กร
มีให้เป็นส่วนหนึ่งของการสมัครสมาชิก Tidelift
ผู้ดูแล OSHI และแพ็คเกจอื่นๆ หลายพันรายการกำลังทำงานร่วมกับ Tidelift เพื่อให้การสนับสนุนเชิงพาณิชย์และการบำรุงรักษาสำหรับการพึ่งพาโอเพ่นซอร์สที่คุณใช้ในการสร้างแอปพลิเคชันของคุณ ประหยัดเวลา ลดความเสี่ยง และปรับปรุงประสิทธิภาพของโค้ด ในขณะเดียวกันก็จ่ายเงินให้กับผู้ดูแลตามที่คุณใช้ เรียนรู้เพิ่มเติม
ข้อมูลติดต่อด้านความปลอดภัย
หากต้องการรายงานช่องโหว่ด้านความปลอดภัย โปรดใช้ผู้ติดต่อด้านความปลอดภัยของ Tidelift Tidelift จะประสานการแก้ไขและเปิดเผยข้อมูล
สถานะการทดสอบการรวมอย่างต่อเนื่อง
ฉันจะช่วยได้อย่างไร?
OSHI มีต้นกำเนิดมาจากไลบรารีที่ไม่ขึ้นกับแพลตฟอร์มซึ่งไม่ต้องการซอฟต์แวร์เพิ่มเติม และมีใบอนุญาตที่เข้ากันได้กับทั้งผลิตภัณฑ์โอเพ่นซอร์สและผลิตภัณฑ์เชิงพาณิชย์ เราได้พัฒนาคุณลักษณะหลักที่แข็งแกร่งบนระบบปฏิบัติการหลักๆ แต่เรายินดีให้ คุณ ช่วยเหลือโดย:
- การทดสอบ! การทดสอบ CI ของเราจำกัดอยู่เพียงไม่กี่แพลตฟอร์ม ดาวน์โหลดและทดสอบโปรแกรมบนระบบปฏิบัติการ/เวอร์ชันและฮาร์ดแวร์ต่างๆ และช่วยระบุช่องว่างที่การพัฒนาและการทดสอบอย่างจำกัดของเราอาจพลาดไป ความต้องการการทดสอบที่มีลำดับความสำคัญสูงโดยเฉพาะ ได้แก่:
- ระบบ Windows ที่มีตัวประมวลผลลอจิคัลมากกว่า 64 ตัว
- ราสเบอร์รี่ปี่
- การแจกแจง Linux ที่พบได้น้อยกว่า
- รหัสที่มีส่วนร่วม เห็นสิ่งที่ทำงานไม่ถูกต้องหรือทำงานได้ดีกว่านี้ใช่ไหม ช่วยเราแก้ไขมัน! ยินดีต้อนรับผู้มีส่วนร่วมใหม่
- จัดทำเอกสารการดำเนินการ วิกิของเรามีอยู่ไม่มากนัก และสิ่งประดิษฐ์
oshi-demo
เป็นสถานที่สำหรับรวบรวมแนวคิดที่พิสูจน์แนวคิดได้ ต้องการช่วยให้ผู้ใช้ใหม่เดินตามรอยของคุณหรือไม่? - แนะนำคุณสมบัติใหม่ คุณต้องการ OSHI เพื่อทำสิ่งที่มันไม่ได้ทำในปัจจุบันหรือไม่? แจ้งให้เราทราบ
มีส่วนร่วมกับ OSHI
- วิธีการมีส่วนร่วม
- วิธีการปล่อย
รับทราบ
ขอขอบคุณบริษัทต่อไปนี้ที่ให้การสนับสนุนโครงการ Open Source รวมถึง OSHI ฟรี:
- SonarCloud สำหรับเครื่องมือคุณภาพโค้ดที่หลากหลาย
- GitHub Actions, AppVeyor และ Cirrus CI สำหรับการทดสอบการบูรณาการอย่างต่อเนื่อง
- jProfile Java Profiler ใช้เพื่อขจัดปัญหาคอขวดของ CPU
ใบอนุญาต
โครงการนี้ได้รับอนุญาตภายใต้ใบอนุญาต MIT