У меня есть программа С#, которая предоставляет доступ к java-программе с помощью tcp. В моей программе на С# я запускаю java-программу по этой строке кода:
var process = new Process
{
StartInfo =
{
UseShellExecute = false,
CreateNoWindow = false,
FileName = "cmd.exe",
Arguments = (@"/c java -ms16m -mx512m -jar pathToJavaApp/javaApp.jar 3562")
}
};
Это прекрасно работает, у меня не было проблем до сих пор. Я установил свою программу на компьютер коллеги. Теперь я получаю сообщение об ошибке: Не удалось получить доступ к файлу jar.
Итак, я попробовал в командной строке "java -jar javaApp.jar", и javaApp запускается сразу.
Я попытался запустить программу как администратор, такую же ошибку. (Windows Vista)
На данный момент я понятия не имею, что проблема может быть.
Я предполагаю, что путь к файлу jar содержит пробелы. Вам нужно процитировать его. Например:
Arguments = "/c java -ms16m -mx512m -jar \"" + pathToJavaApp
+ "\"/javaApp.jar 3562"
Чтобы узнать больше о том, что происходит, измените свои аргументы на:
Arguments = (@"/c java -verbose -ms16m -mx512m -jar pathToJavaApp/javaApp.jar 3562")
Таким образом вы можете увидеть, что он пытается загрузить, и посмотреть, правильно ли работает Jon Skeet.
2 вещи -
it -Xmx и -Xms, not -ms, -mx.
Загружает ли ваша программа какие-либо дополнительные банки? возможно, они существуют на компьютере ваших коллег, но не на том, на котором он не будет работать.
(хотя ответ Джона Скита выглядит скорее)