Как я могу использовать JDK из ASP.NET MVC для компиляции и запуска java на удаленном сервере?
В настоящее время я получаю доступ к JDK, который находится на моей локальной машине. Я хочу иметь возможность использовать его удаленно(я хочу иметь JDK на сервере, чтобы все пользователи могли компилировать и запускать свои коды). Я подумываю о том, чтобы скопировать его с моей локальной машины в папку App_Data в проекте .Net, а затем щелкнуть правой кнопкой мыши и включить его в проект. Это верно?
Что я уже пробовал:
public ActionResult Compile(string dirPath) { Process p = new Process(); p.StartInfo.FileName = "C:/Program Files/Java/jdk1.8.0_20/bin/javac.exe"; p.StartInfo.UseShellExecute = false; p.StartInfo.Arguments = "E:/Atypon/TE4/src/FileServer/Upload.java"; p.StartInfo.RedirectStandardInput = true; p.StartInfo.CreateNoWindow = true; p.StartInfo.RedirectStandardOutput = true; p.StartInfo.CreateNoWindow = true; p.StartInfo.RedirectStandardError = true; p.Start(); string result=p.StandardError.ReadToEnd(); p.WaitForExit(); return View(result); }
Richard MacCutchan
Что происходит, когда вы пытаетесь это сделать?
Member 12992094
Он компилируется правильно, но путь к JDK является локальным, поэтому пользователи на других машинах не могут его использовать.
Richard MacCutchan
Почему вы думаете, что они могут?
Member 12992094
Я должен позволить им компилировать свои Java-программы без необходимости устанавливать JDK на свои локальные машины, это главный смысл веб-сайта. JDK-это большая папка, я не могу загрузить ее на сервер так же, как загружаю простой txt-файл. Поэтому я подумал о том, чтобы скопировать его в каталог проекта. Я просто не уверен, что это сработает.
Afzaal Ahmad Zeeshan
Затем просто позвольте им загрузить исходный ввод и скомпилировать его от своего имени. Таким образом, казнь будет проходить в режиме онлайн, и они получат ответ.
Не позволяйте пользователям напрямую взаимодействовать с двоичными файлами на вашем сервере. Совершенно нелогично и небезопасно разрешать кому — либо доступ к контенту — особенно к двоичным файлам, - поскольку это может подвергнуть ваше веб-приложение их воздействию, и тогда результаты полностью зависят от их намерений.
Member 12992094
Да, именно это я и хочу сделать. Они загрузят файлы, нажмут кнопку "скомпилировать" и получат результат.
Но мне нужен JDK на моем сервере, верно? Как я собираюсь загрузить JDK на сервер? поэтому я подумал: если я скопирую JDK, уже установленный на моем ноутбуке, в каталог проекта, а затем получу доступ к нему с помощью виртуального пути, будет ли он развернут вместе с проектом на удаленном сервере? (Лазурный в моем случае). Смогут ли пользователи компилировать свои коды удаленно?
Richard MacCutchan
Вам нужно следовать правильному пути и установить JDK где-нибудь на вашем сервере. Затем, когда веб-клиент загружает исходный файл, вы можете передать его компилятору в отдельном процессе, захватить выходные данные и отправить их обратно пользователю.
Member 12992094
Не могли бы вы подсказать мне, как это сделать? Я действительно Новичок в веб-разработке, и я не могу понять этого.
Richard MacCutchan
Ваш вопрос касается установки Java Development Kit, который представляет собой простую загрузку с веб-сайта Oracle на ваш сервер. Если у вас нет административного доступа к этому серверу, вам нужно поговорить с людьми, которые могут его предоставить.
Afzaal Ahmad Zeeshan
Пожалуйста, взгляните на мой ответ ниже.