Решение CoolBean должно работать.Что-то вроде
Shell("cmd.exe /k java -classpath %TEMP% Main")
Поскольку вы можете (и должны) опустить расширение .class.И, как сказал CoolBeans, вы устанавливаете каталог, в котором находится ваш файл класса, как classpath.
В то время как javac принимает файл, java принимает класс (другими словамиимя класса после 'public class'), а также то, в чем он находится packages (если у вас нет «packagething;» вверху вашего Java-файла, не беспокойтесьоб этом), и он будет искать этот класс в указанном вами пути к классам или текущем рабочем каталоге.
Если это в конечном итоге является решением, дайте CoolBeans принятый ответ.
Однако альтернативное решение состоит в том, чтобы изменить текущий рабочий каталог для Shell на% TEMP%, например:
IO.Directory.SetCurrentDirectory(Environ("TEMP"))
Shell("cmd.exe /k java Main")
Или, альтернативно, заглянуть в класс Process , который предлагает более точный контрольчерез запуск других программ (и с помощью Process
вы также можете изменить каталог запускаемой программы, не изменяя текущий каталог вашего собственного приложения).