sto ottenendo nome host della macchina come segue:Ottenere hostname con Java non riesce in ultima jdk7
InetAddress.getLocalHost().getHostName();
Tuttavia, quando ho messo più recente JDK (jdk1.7.0_04), il codice di cui sopra semplicemente restituire LOCALHOST . Ho controllato/etc/hosts (il suo linux) e si dice lì:
127.0.0.1 localhost redbull
E 'stato tornando REDBULL fino aggiornamento. Quindi l'ho modificato inserendo
127.0.0.1 redbull localhost
e ha iniziato a restituire REDBULL senza problemi.
C'è un modo migliore di fare questo lavoro?
Sì, questo fa apparire come un duplicato, ma la sua non quando osservi da vicino. Sono anche d'accordo che dovrebbe restituire LOCALHOST. Tuttavia, con tutte le versioni precedenti di JDK, non ha mai funzionato e quindi "correggere" la logica a questo punto sembra essere contro-intuitiva. Usare JNI per ottenere qualcosa di semplice come l'hostname mi sembra eccessivo.A meno che qualcuno non abbia una soluzione migliore o JDK offra qualcosa di più standard, userò la mia "soluzione alternativa" su questo. – Daniil
Tenderei ad essere d'accordo. La distribuzione di JNI, anche se certamente ben compresa, aggiunge un altro livello di complessità al processo di compilazione e implementazione. E se questo è l'unico JNI che ti serve? Probabilmente eccessivo. È strano che lo avrebbero cambiato, il team di Java tende a segnalare bug apparentemente importanti come "progettati" per mantenere il backcompat. –