OSHI é uma biblioteca gratuita de sistema operacional e informações de hardware baseada em JNA (nativa) para Java. Não requer a instalação de nenhuma biblioteca nativa adicional e tem como objetivo fornecer uma implementação multiplataforma para recuperar informações do sistema, como versão do sistema operacional, processos, uso de memória e CPU, discos e partições, dispositivos, sensores, etc.
- Plataformas Suportadas
- Downloads e gerenciamento de dependências
- Documentação
- Uso
- Recursos suportados
- Apoiar
- OSHI para empresas
- Informações de contato de segurança
- Status do teste de integração contínua
- Como posso ajudar?
- Contribuindo para OSHI
- Agradecimentos
- Licença
Plataformas Suportadas
- Windows
- macOS
- Linux (Android)
- UNIX (AIX, FreeBSD, OpenBSD, Solaris)
Documentação
- API (javadocs)
- Perguntas frequentes
- Registro de alterações
- Considerações de desempenho
- Principais alterações de versão
- Saída de amostra
- Aplicações e Projetos usando OSHI
Downloads e gerenciamento de dependências
Versão de lançamento estável
- JDK8: oshi-core-6.6.5
- JPMS: oshi-core-java11-6.6.5
- JDK6: oshi-core-3.14.0
Downloads de desenvolvimento atual (SNAPSHOT)
- JDK8: oshi-core-6.6.6-SNAPSHOT
- JPMS: oshi-core-java11-6.6.6-SNAPSHOT
Uso
- Inclua OSHI e suas dependências no seu classpath.
- Recomendamos fortemente que você adicione
oshi-core
como uma dependência ao gerenciador de dependências do seu projeto, como Maven ou Gradle. - Para Android, você precisará adicionar o artefato AAR para JNA e excluir a dependência transitiva (JAR) do OSHI.
- Consulte o FAQ se você encontrar problemas
NoClassDefFoundError
ou NoSuchMethodError
.
- Crie uma nova instância do
SystemInfo
- Use os getters do
SystemInfo
para acessar componentes de hardware ou sistema operacional, como:
SystemInfo si = new SystemInfo ();
HardwareAbstractionLayer hal = si . getHardware ();
CentralProcessor cpu = hal . getProcessor ();
Consulte SystemInfoTest.java para obter exemplos. Para ver um exemplo de saída para sua máquina:
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 "
Algumas configurações são configuráveis no arquivo oshi.properties
, que também pode ser manipulado usando a classe GlobalConfig
. Isso deve ser feito na inicialização, pois a configuração não é segura para threads e o OSHI não garante a releitura da configuração durante a operação.
O artefato oshi-demo
inclui vários exemplos de prova de conceito do uso do OSHI para obter informações, incluindo uma GUI Swing básica.
Recursos suportados
- Sistema de computador e firmware, rodapé
- Sistema operacional e versão/compilação
- CPUs físicas (núcleo) e lógicas (hiperthread), grupos de processadores, nós NUMA
- Carga do sistema e por processador, contadores de ticks de uso, interrupções, tempo de atividade
- Tempo de atividade do processo, CPU, uso de memória, usuário/grupo, argumentos de linha de comando, detalhes do thread
- Memória física e virtual usada/disponível
- Sistemas de arquivos montados (tipo, espaço utilizável e total, opções, leituras e gravações)
- Unidades de disco (modelo, serial, tamanho, leituras e gravações) e partições
- Interfaces de rede (IPs, entrada/saída de largura de banda), parâmetros de rede, estatísticas TCP/UDP
- Estado da bateria (% de capacidade, tempo restante, estatísticas de uso de energia)
- Dispositivos USB
- Monitores conectados (com informações EDID), placas gráficas e de áudio
- Sensores (temperatura, velocidade do ventilador, tensão) em alguns hardwares
Apoiar
- Para relatórios de bugs, solicitações de recursos ou perguntas gerais sobre os planos de longo prazo da OSHI, crie um problema.
- Para obter ajuda na integração do OSHI em seu próprio projeto ou na revisão do código do mantenedor de seus PRs, marque
@dbwiddis
em problemas ou pull requests no site do seu projeto. - Para dúvidas de "como fazer" sobre o uso da API, consulte exemplos no projeto
oshi-demo
, crie um problema ou pesquise no Stack Overflow usando a tag oshi
, fazendo uma nova pergunta caso ela não tenha sido respondida antes. - Para agradecer ao principal mantenedor do OSHI, você pode patrociná-lo ou comprar um café para ele.
OSHI para empresas
Disponível como parte da assinatura Tidelift
Os mantenedores do OSHI e milhares de outros pacotes estão trabalhando com o Tidelift para fornecer suporte comercial e manutenção para as dependências de código aberto que você usa para construir seus aplicativos. Economize tempo, reduza riscos e melhore a integridade do código, pagando aos mantenedores pelas dependências exatas que você usa. Saber mais.
Informações de contato de segurança
Para relatar uma vulnerabilidade de segurança, use o contato de segurança da Tidelift. A Tidelift coordenará a correção e divulgação.
Status do teste de integração contínua
Como posso ajudar?
OSHI originou-se como uma biblioteca independente de plataforma que não exigia software adicional e tinha uma licença compatível com produtos comerciais e de código aberto. Desenvolvemos um forte núcleo de recursos nos principais sistemas operacionais, mas adoraríamos que você ajudasse:
- Testando! Nossos testes de CI são limitados a algumas plataformas. Baixe e teste o programa em vários sistemas operacionais/versões e hardware e ajude a identificar lacunas que nosso desenvolvimento e testes limitados podem ter perdido. As necessidades específicas de testes de alta prioridade incluem:
- Sistemas Windows com mais de 64 processadores lógicos
- Framboesa Pi
- Distribuições Linux menos comuns
- Código de contribuição. Viu algo que não está funcionando bem ou poderia funcionar melhor? Ajude-nos a consertar isso! Novos contribuidores são bem-vindos.
- Documentando a implementação. Nosso Wiki é esparso e o artefato
oshi-demo
é um local para hospedar ideias de prova de conceito. Quer ajudar novos usuários a seguir seus passos? - Sugerindo novos recursos. Você precisa que o OSHI faça algo que ele não faz atualmente? Deixe-nos saber.
Contribuindo para OSHI
- Como contribuir
- Como liberar
Agradecimentos
Muito obrigado às seguintes empresas por fornecerem suporte gratuito a projetos de código aberto, incluindo OSHI:
- SonarCloud para uma variedade de ferramentas de qualidade de código
- GitHub Actions, AppVeyor e Cirrus CI para testes de integração contínua
- O jProfile Java Profiler usado para eliminar gargalos de CPU
Licença
Este projeto está licenciado sob a licença MIT.