[英]Trying to rename a computer OR execute a .bat file in Java
我正在嘗試編寫一個腳本來重命名計算機(除其他外),但似乎無法弄清楚。 只要我可以更改計算機,我都不在乎我用什么方法來更改計算機。 我發現如何通過執行以下操作讀取計算機名稱
String computername = InetAddress.getLocalHost().getHostName();
但是,這似乎對設置計算機名稱沒有任何幫助。 有沒有一種方法可以直接在Java控制台中設置計算機名稱?
如果沒有,或者如果有人在這方面有更好的經驗,我還使用Powershell 2.0編寫了一個腳本,該腳本重命名了計算機。 我試圖弄清楚如何使用
Runtime rt = Runtime.getRuntime();
Process proc = rt.exec("file location");
我在這里遵循了指南,但是當嘗試運行應該僅打開命令行的測試.bat文件時,我只是在Java控制台中獲得了以下輸出:
C:\Users\Stephen\Desktop\opencmd.bat is found
OUTPUT>
OUTPUT>C:\Users\Stephen\workspace\UNM computer rename>cmd.exe
OUTPUT>Microsoft Windows [Version 6.1.7601]
OUTPUT>Copyright (c) 2009 Microsoft Corporation. All rights reserved.
OUTPUT>
看起來它只是將命令行輸出吐回到Java控制台中,而不是僅運行命令並打開cmd行。
我非常感謝您在這里忙碌的時間中的投入,謝謝!
首先,JDK確實沒有提供允許更改計算機名稱的純Java API。 因此,您必須運行腳本。
其次,如果要使用運行時運行腳本,則必須提供正確的命令行。 因此,首先嘗試手動運行腳本。 我相信它接受至少一個參數(新計算機名稱)。 因此,從命令提示符處運行它,然后查看它是否正在運行。 然后將其放在Java程序的工作目錄中,然后將命令行復制/粘貼到Java代碼中,以查看其現在是否正常運行。 如果您願意,可以閱讀腳本的STDOUT和/或獲取其返回代碼。 如果您不關心其輸出,則只需調用process.waitFor(),然后獲取返回代碼。
注意參數。 Windows計算機名稱可能包含Unicode字符和空格。 如果包含空格,請用引號將其引起來。 關於unicode,請嘗試。 我希望它不會對您造成問題。
您還可以使用ProcessBuilder類,該類允許更好和更可移植的參數傳遞。
祝好運。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.