Quero chamar métodos (GetDiskFreeSpaceExA) de uma dll do windows (kernel32) Onde eu passo como parametro a unidade (C: ou D) e ela me retorna o tamanho do disco. Como faço isso em java???
Usar dll do Windows
M
3 Respostas
S
se já nao houver implementacao desse método em alguma classe utilitária vc terá de usar JNI para realizar chamadas da biblioteca (dll) do windows
M
Blz cara, to tentando rodar o tutorial da sun, o famosíssimo “HelloWorld”. Mas está dando o seguinte erro:
C:\Marcelo\Apostilas>java HelloWorld
Exception in thread “main” java.lang.UnsatisfiedLinkError: displayHelloWorld
at HelloWorld.displayHelloWorld(Native Method)
at HelloWorld.main(HelloWorld.java:9)
M
Velhinho, mais uma coisa!!!
Eu consegui um código que faz o que eu preciso (Usa a informação da dll Kernel32)!!! Excelente, agora gostaria de saber como faço uma rotina JNI pra implementar este código C que já está compilado???? O código vem a seguir:
Só o tutorial da sun não me deu base pra saber como proceder neste caso!!! Ficarei muito grato se me ajudarem!!! Obrigado
#include <windows.h>
#include <stdio.h>
typedef BOOL (WINAPI *PGETDISKFREESPACEEX(LPCSTR,
PULARGE_INTEGER, PULARGE_INTEGER, PULARGE_INTEGER));
BOOL MyGetDiskFreeSpaceEx(LPCSTR pszDrive)
{
PGETDISKFREESPACEEX pGetDiskFreeSpaceEx;
__int64 i64FreeBytesToCaller, i64TotalBytes, i64FreeBytes;
DWORD dwSectPerClust, dwBytesPerSect, dwFreeClusters, dwTotalClusters;
BOOL fResult;
pGetDiskFreeSpaceEx = GetProcAddress( GetModuleHandle("kernel32.dll"),
"GetDiskFreeSpaceExA");
if (pGetDiskFreeSpaceEx)
{
fResult = pGetDiskFreeSpaceEx (pszDrive,
(PULARGE_INTEGER)&i64FreeBytesToCaller,
(PULARGE_INTEGER)&i64TotalBytes,
(PULARGE_INTEGER)&i64FreeBytes);
// Process GetDiskFreeSpaceEx results.
printf("Total free bytes = %I64d\n", i64FreeBytes);
}
else
{
fResult = GetDiskFreeSpace (pszDrive,
&dwSectPerClust,
&dwBytesPerSect,
&dwFreeClusters,
&dwTotalClusters);
// Process GetDiskFreeSpace results.
printf("Total free bytes = I64d\n",
dwFreeClusters*dwSectPerClust*dwBytesPerSect);
}
}
Criado 13 de maio de 2004
Ultima resposta 14 de mai. de 2004
Respostas 3
Participantes 2
Alura Git Flow: entenda o que é, como e quando utilizar Entenda o que é Git Flow, como funciona seu fluxo com branches como Master, Develop, Feature, Release e Hotfix, além de vantagens e desvantagens.
Casa do Codigo Ontologias e Web Semantica: Do conceito a aplicacao Por Ivam Galvao Filho — Casa do Codigo