Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

Java JIT

Ostatnio zmodyfikowano 2015-12-27 16:08
Autor Wiadomość
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.
P-142150
pekfos
» 2015-12-20 10:23:11
JIT do tego nie służy.

A co jak ktoś nie ma JDK?
To nie skompiluje.
P-142174
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.
P-142178
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
P-142188
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??
P-142234
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.
P-142259
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

P-142415
« 1 »
  Strona 1 z 1