Вот несколько способов найти короткое имя каталога.
Windows, CMD
dir /X "C:\Program Files (x86)*"
в VB скрипт
' usage: cscript shortname.vbs [directory]
'
' example: cscript shortname.vbs "C:\Program Files (x86)\Java\jdk1.6.0_45"
on error resume next
Set fso=CreateObject("Scripting.FileSystemObject")
Set objFolder = fso.GetFolder(WScript.Arguments(0))
Set objSubFolders = objFolder.SubFolders
For Each sf In objSubFolders
WScript.Echo sf.ShortPath
Next
Set objFiles = ObjFolder.Files
For Each file In objFiles
WScript.Echo file.ShortPath
Next
Java с использованием ЮНА
import com.sun.jna.Native;
import com.sun.jna.platform.win32.Kernel32;
public class LongToShort {
public static String GetShortPathName(String path) {
char[] result = new char[256];
Kernel32.INSTANCE.GetShortPathName(path, result, result.length);
return Native.toString(result);
}
// java LongToShort "C:\Program Files (x86)\Java\jdk1.6.0_45"
public static void main(String[] args) {
System.out.println(GetShortPathName(args[0]));
}
}
Редактировать
Пример изменения переменной окружения JAVA_HOME.
Предполагая, что ваш JDK установлен в C:\Program Files (x86)\Java\jdk1.6.0_45
.
Сокращенное наименование C:\Program Files (x86)
Возможно, PROGRA~1
.
Изменить ваш JAVA_HOME:
от set JAVA_HOME=C:\Program Files (x86)\Java\jdk1.6.0_45
в set JAVA_HOME=C:\PROGRA~1\Java\jdk1.6.0_45
Это пространство в вашем пути. –
Установите JAVA_HOME с 8.3 кратким названием каталога. – SubOptimal
Вы имеете в виду значение переменной? – user3407440