Extern compile
26 отговора
1019 прегледа
Extern compile
Здравейте !
описание :
имам на сайта поле <textarea></textarea> .
В него потребителя ще слага Java code.
Цел :
При натискане на бутон въпросния Java code трябва да се компилира в background,
и да разбера дали компилацията е била без грешка или има и грешки.
Ако разбера и каква е грешката ще е плюс ! Но това май го показва резултата
който го връща самия компилатор /javac/ . Каде да чета за това каккъв вид е резултата на компилатора ?
Въпрос :
Как да стане това ? Първо във файл ли трябва да запиша Java кода или може направо.
Многа ще съм благодарен на някаквя помощ тъй като нямам никакво време !!!
Ако не беше последната секунда... никога нямаше да свършваме нищо
описание :
имам на сайта поле <textarea></textarea> .
В него потребителя ще слага Java code.
Цел :
При натискане на бутон въпросния Java code трябва да се компилира в background,
и да разбера дали компилацията е била без грешка или има и грешки.
Ако разбера и каква е грешката ще е плюс ! Но това май го показва резултата
който го връща самия компилатор /javac/ . Каде да чета за това каккъв вид е резултата на компилатора ?
Въпрос :
Как да стане това ? Първо във файл ли трябва да запиша Java кода или може направо.
Многа ще съм благодарен на някаквя помощ тъй като нямам никакво време !!!
Ако не беше последната секунда... никога нямаше да свършваме нищо
Re: Extern compile
Многа ще съм благодарен на някаквя помощ тъй като нямам никакво време !!!
Мисля съм закъснял да ти помогна затова няма смисъл да ти пиша как да стане.
Отиде ли коня в реката?
Мисля съм закъснял да ти помогна затова няма смисъл да ти пиша как да стане.
Отиде ли коня в реката?
Re: Extern compile
Коня е в реката , но още се държи ... има оше малко въздух !!!
Та няма да е лошо да му подадеш некоя сламка...
Ако не беше последната секунда... никога нямаше да свършваме нищо
Та няма да е лошо да му подадеш некоя сламка...
Ако не беше последната секунда... никога нямаше да свършваме нищо
Re: Extern compile
Predlagam 2 podhoda:
1. S izpozlwane na external compiler. Zapiswash file .java i go kompilirash s javac kato puskash wynshen process. Tuka e pokazano kakwa e idejata i ima i malko code:
[линк]
(Tozi nachin e naj siguren otkym kompatibilnost)
2. Izpolwash wgraden compilator kato BeanShell. Imash string i go evaluirash i towa e. Tuka ima primer kak stawa:
[линк]
(Tozi method mozhe da kompilira i neshto koeto ne e standartna java, zashtoto beanshell ima extentions, a mozhe i da ne uspee da kompilira standartna Java, zashtoto beanshell ne poddyrzha wsichko)
1. S izpozlwane na external compiler. Zapiswash file .java i go kompilirash s javac kato puskash wynshen process. Tuka e pokazano kakwa e idejata i ima i malko code:
[линк]
(Tozi nachin e naj siguren otkym kompatibilnost)
2. Izpolwash wgraden compilator kato BeanShell. Imash string i go evaluirash i towa e. Tuka ima primer kak stawa:
[линк]
(Tozi method mozhe da kompilira i neshto koeto ne e standartna java, zashtoto beanshell ima extentions, a mozhe i da ne uspee da kompilira standartna Java, zashtoto beanshell ne poddyrzha wsichko)
Re: Extern compile
ima i drugo, w tools.jar ima wytreshen compiler koito mojesh da izvikwash programno. AppServerite taka kompilirat stubowete i skeletoni i ejb-tata , po tyursi info za towa, toi e w edin sun-ski paket daje.
Re: Extern compile
Направил съм следното :
com.sun.tools.javac.Main javac = new com.sun.tools.javac.Main();
String[] args = new String[] {"-d", System.getProperty("user.dir"),fileName};
int status = javac.compile(args);
Няма грешка, но нещо май не работи защото никаде невиждам да създава .class файлове !!!
Неможах да открия инфо за това какво връща " javac.compile(args) " . Един път ми връща 1 един път 2 .
Въобще не намерих документация за пакета " com.sun.tools.javac "
Ако някой може да ми даде нещо ... има една бира
Ако не беше последната секунда... никога нямаше да свършваме нищо
com.sun.tools.javac.Main javac = new com.sun.tools.javac.Main();
String[] args = new String[] {"-d", System.getProperty("user.dir"),fileName};
int status = javac.compile(args);
Няма грешка, но нещо май не работи защото никаде невиждам да създава .class файлове !!!
Неможах да открия инфо за това какво връща " javac.compile(args) " . Един път ми връща 1 един път 2 .
Въобще не намерих документация за пакета " com.sun.tools.javac "
Ако някой може да ми даде нещо ... има една бира
Ако не беше последната секунда... никога нямаше да свършваме нищо
Re: Extern compile
между другото тази нередност ще я оправят в шестицата
.. ако имаш време да почакаш 
уесно нема
уесно нема
Re: Extern compile
еми ако 6-цата излезе до 2 седмици зна4и имам време да я 4акам !!!
А за коя нередност казва6
Ако не беше последната секунда... никога нямаше да свършваме нищо
А за коя нередност казва6
Ако не беше последната секунда... никога нямаше да свършваме нищо
Re: beer!
Еми да аз от тук съм гледал !!! Е те са показали някакъв начин за създаване на файл, но аз го сздавам по друг начин. Иначе другото е същото .
Трябва ли да сложа нещо в директорията на проекта в Tomcat или то този клас com.sun.tools.javac.Main си прави всичко.
Ако не беше последната секунда... никога нямаше да свършваме нищо
Трябва ли да сложа нещо в директорията на проекта в Tomcat или то този клас com.sun.tools.javac.Main си прави всичко.
Ако не беше последната секунда... никога нямаше да свършваме нищо
Re: Extern compile
До колкото разбирам това нестава , защото се създава клас " около " стринга който се опитвам да компилирам. Да готина идея ама моя стринг има структурата на една програма
package my;
import ....;
import ....;
public class myclass {
...... /methods/
main {}
i t.n.
е това всичкото немога да го сложа както е показано и да стане така :
import java.util.*;
import java.io.*;
import java.net.*;
//Import as many as you want, so user don't have to write fully qualified class names...
public class Dynamic {
public static String getResult() {
и тук да си сложа показаното по горе (което не е обикновен стринг)
}
public static void main(String[] args) {
System.out.println( getResult() );
}
}
.....или може
Ако не беше последната секунда... никога нямаше да свършваме нищо
package my;
import ....;
import ....;
public class myclass {
...... /methods/
main {}
i t.n.
е това всичкото немога да го сложа както е показано и да стане така :
import java.util.*;
import java.io.*;
import java.net.*;
//Import as many as you want, so user don't have to write fully qualified class names...
public class Dynamic {
public static String getResult() {
и тук да си сложа показаното по горе (което не е обикновен стринг)
}
public static void main(String[] args) {
System.out.println( getResult() );
}
}
.....или може
Ако не беше последната секунда... никога нямаше да свършваме нищо
Re: Extern compile
Имам един чист .java файл ...
и изглежда че да се компилира не е много лесно !!!



Ако не беше последната секунда... никога нямаше да свършваме нищо
и изглежда че да се компилира не е много лесно !!!
Ако не беше последната секунда... никога нямаше да свършваме нищо
Re: Extern compile
Здрасти
можеш да пробваш да стартираш javac като отделен процес със Runtime.exec() и да гледаш връщания код. Това са основните на javac:
0 - компилацията е успешна
1 - грешка при компилация
2 - грешни опции, подадени на компилатора
ако искаш повече инфо, пусни javac с verbose и парсвай изхода
можеш да пробваш да стартираш javac като отделен процес със Runtime.exec() и да гледаш връщания код. Това са основните на javac:
0 - компилацията е успешна
1 - грешка при компилация
2 - грешни опции, подадени на компилатора
ако искаш повече инфо, пусни javac с verbose и парсвай изхода
Re: Extern compile
Здравей...
Може6 ли да ми каже6 как да го направа това... ако ми даде6 от каде да гледам много 6те съм ти благодарен. Ако може по скоро 4е времето ме притиска ... благодаря предварително
Ако не беше последната секунда... никога нямаше да свършваме нищо
Може6 ли да ми каже6 как да го направа това... ако ми даде6 от каде да гледам много 6те съм ти благодарен. Ако може по скоро 4е времето ме притиска ... благодаря предварително
Ако не беше последната секунда... никога нямаше да свършваме нищо
Re: Extern compile
Здрасти
ето един къс пример, то повече работа не му и трябва ;)
public class Compile {
public static void main (String[] args) throws Exception {
Runtime r = Runtime.getRuntime();
String javac = "/java/jdk1.4/bin/javac";
String clazz = "Test.java";
String []cmd = {javac, clazz};
Process p = r.exec(cmd);
p.waitFor();
int exitVal = p.exitValue();
switch (exitVal) {
case 0: System.out.println("Compile OK"); break;
case 1: System.out.println("Compile error!"); break;
case 2: /* should not happen - we start the compiler ;) */
}
}
}
ето един къс пример, то повече работа не му и трябва ;)
public class Compile {
public static void main (String[] args) throws Exception {
Runtime r = Runtime.getRuntime();
String javac = "/java/jdk1.4/bin/javac";
String clazz = "Test.java";
String []cmd = {javac, clazz};
Process p = r.exec(cmd);
p.waitFor();
int exitVal = p.exitValue();
switch (exitVal) {
case 0: System.out.println("Compile OK"); break;
case 1: System.out.println("Compile error!"); break;
case 2: /* should not happen - we start the compiler ;) */
}
}
}
Re: Extern compile
струва ми се че нещо бъркам пътя
String javac = "/java/jdk1.4/bin/javac"; - при този синтаксис каде е javac на харда.
Май тука бъркам. При мен е
C:\Program Files\Java\jdk1.5.0_02\bin\javac.exe - това как трябва да стане във стринга ???
Ако не беше последната секунда... никога нямаше да свършваме нищо
String javac = "/java/jdk1.4/bin/javac"; - при този синтаксис каде е javac на харда.
Май тука бъркам. При мен е
C:\Program Files\Java\jdk1.5.0_02\bin\javac.exe - това как трябва да стане във стринга ???
Ако не беше последната секунда... никога нямаше да свършваме нищо
Re: Extern compile
C:\\Program Files\\Java\\jdk1.5.0_02\\bin\\javac.exe
пробвай така
пробвай така
Re: Extern compile
мерси така става.... обаче каквото и да компилирам все грешка "1" .
Аз подавам на компилатора масив от 2 елемента
1. път до компилатора
2. име та файла
Май компилатора вобще не компилира никакъв файл. Или как разбира каде съм записъл файла.
Файла ми се записва вав дефоут директорията на web server-a демек <%=System.getProperty("user.dir")%>
Та как да кажа на компилатора за файла.
thanks
Ако не беше последната секунда... никога нямаше да свършваме нищо
Аз подавам на компилатора масив от 2 елемента
1. път до компилатора
2. име та файла
Май компилатора вобще не компилира никакъв файл. Или как разбира каде съм записъл файла.
Файла ми се записва вав дефоут директорията на web server-a демек <%=System.getProperty("user.dir")%>
Та как да кажа на компилатора за файла.
thanks
Ако не беше последната секунда... никога нямаше да свършваме нищо