Java JIT
Ostatnio zmodyfikowano 2015-12-27 16:08
C-Objective Temat założony przez niniejszego użytkownika |
Java JIT » 2015-12-19 16:21:07 Witam. Mam kod w String[], np: String[] kod = new String[5]; kod[0] = "public class klasa{"; kod[1] = " public static void main(String[] args){"; kod[2] = " System.out.println("Hello World!");"; kod[3] = " }"; kod[4] = "}";
i chcę go zamienić na byte-code w byte[]. Widziałem w internecie o klasie JavaCompiler, ale ona wymaga JDK zainstalowanego na komputerze. A co jak ktoś nie ma JDK? Jak to rozwiązać? Dołączanie kompilatora javac też nie zadziała, ponieważ wymaga on klasy com.sun.javac.main.Main czy jakoś tak. |
|
pekfos |
» 2015-12-20 10:23:11 JIT do tego nie służy. A co jak ktoś nie ma JDK? |
To nie skompiluje. |
|
Gibas11 |
» 2015-12-20 11:31:02 JIT to kompilator robiący z bajtcodu javy kod maszynowy.
Bez JDK się nie obejdzie, możesz spróbować go jakoś sprytnie ukryć razem z programem. |
|
C-Objective Temat założony przez niniejszego użytkownika |
» 2015-12-20 17:18:34 Tzn? Samo javac.exe nie wystarczy :) Można by kod skopiować i wywalić razem z projektem tylko... Gdzie jest kod źródłowy javac? bo ja jakoś w folderze z javac nie mam archiwum z kodem :(. EDIT: A co z C++? Jakaś interpretacja C++ podczas wykonywania? Próbowałem upychać do programu Tiny C Compiler ale coś mi nie wychodzi... EDIT2: Z java łatwo: wpychasz plik bat np. o taki: java.exe -jar xxx.jar
i java.exe i nie ma problemu a z tym jdk obszernym to by sobie oracle odpuściło :D |
|
mateczek |
» 2015-12-22 07:02:30 A co z C++? Jakaś interpretacja C++ podczas wykonywania |
Szukasz jakieś klasy C++, która jako parametr przyjęła kod Javy i ten kod wykonała?? |
|
C-Objective Temat założony przez niniejszego użytkownika |
» 2015-12-22 19:10:25 Pomyśl co czytasz, nie próbuj czytać tekstu na siłę. Napisałem o C++, i o TCC. Czy tcc to kompilator Java? Miałem na myśli to, czy istnieje funkcja kompilująca C do kodu maszynowego w C, skoro do javy nie istnieje. Edit: Skompilowałem OpenJDK, oraz zrobiłem to o czym wspominał gibas11. |
|
mateczek |
» 2015-12-27 16:08:57 kompilatory "c" kompilują do kodu maszynowego. To znaczy że program powstały w wyniku kompilacji jest wykonywany przez procesor (nie tak jak w przypadku jawy gdzie program jest wykonywany przez inny program (wirtualna maszyna)) Gdyby była możliwość użyć prostej funkcji chyba nikt by się nie bujał z pisaniem kompilatora. Optymalizacja optymalizacją. Ale skoro gcc zajmuje tyle co zajmuje to znaczy, że tyle musi (standardowa biblioteka też swoje waży) Ale do rzeczy :) moja zabawa z g++ https://youtu.be/uv18N-Ct4ig |
|
« 1 » |