Difference between revisions of "FPC JVM/ru"
Paul Ishenin (talk | contribs) |
|||
Line 22: | Line 22: | ||
Если интересующая вас система не представлена, или вас интересует непосредственно сборка компилятора/rtl, то в отдельном архиве представлены только используемые Ява-компоненты (Jasmin, javapp, BCEL) . Инструкции по сборке приведены ниже. | Если интересующая вас система не представлена, или вас интересует непосредственно сборка компилятора/rtl, то в отдельном архиве представлены только используемые Ява-компоненты (Jasmin, javapp, BCEL) . Инструкции по сборке приведены ниже. | ||
* [ftp://ftp.freepascal.org/pub/fpc/contrib/jvm/fpcjvmutilities.zip FPC JVM utilities] (этот файл вам '''НЕ''' нужен, если вы уже сказачли один из файлов, указанный выше) | * [ftp://ftp.freepascal.org/pub/fpc/contrib/jvm/fpcjvmutilities.zip FPC JVM utilities] (этот файл вам '''НЕ''' нужен, если вы уже сказачли один из файлов, указанный выше) | ||
+ | |||
+ | =Пример= | ||
+ | |||
+ | Чтобы скомпилировать и запустить следующую программу http://svn.freepascal.org/svn/fpc/branches/jvmbackend/tests/test/jvm/trange1.pp. Нужно выполнить следующие действия: | ||
+ | |||
+ | ppcjvm -O2 -g trange1 | ||
+ | java -cp C:\full\path\to\fpcjvm\units\rtl\jvm-java trange1 | ||
+ | |||
+ | Замените ''C:\full\path\to\fpcjvm\units\rtl\jvm-java'' на полный путь директории ''units\rtl\jvm-java'' распакованную из архива скачанного образа. | ||
+ | |||
+ | [[FPC_JVM/Usage|Дополнительная информация]]. | ||
+ | |||
+ | '''Внимание:''' после компиляции создаётся файл trangle1.class. Скорее всего в ключ -cp так же необходимо добавить полный путь к этому файлу (каждый путь должен разделяться символом ";" - в Windows или ":" - в Unix системах) | ||
+ | java -cp C:\full\path\to\fpcjvm\units\rtl\jvm-java;C:\full\path\to\compiled\file trange1 | ||
+ | Так или иначе, java должа знать местонахождение .class файлов для RTL и для скомпилированной программы. | ||
=Дополнительная информация= | =Дополнительная информация= |
Revision as of 21:18, 21 August 2011
│
English (en) │
русский (ru) │
Обзор
FPC-backend для виртуальной машины Java (JVM) генерирует байт-код ява, соответствующий JDK спецификации версии 1.5 (и более поздних версий). На настоящий момент поддерживаются не все возможности языка FPC, но наибольшая часть поддерживается (или будет добавлена в будущем). Команда разработчиков сделала всё возможное, чтобы не вносить каких-либо дополнительных изменений в язык с поддержкой Ява платформы.
Эта реализация FPC JVM backend никак не связана с проэктом Project Cooper от RemObjects, и никак не поддерживает язык Oxygene.
Сборки
Сбрки компилятора первой версии (svn r18783, 2011/08/20) указаны ниже. Это кросс-компиляторы которые работают под указанные системы и компилируют в ява-код. Создаваемый ява-код никаким образом к системам не привязан.
Инструкция по установке:
- распакуйте архив
- измените fpc.cfg (bin\fpc.cfg (Windows), etc/fpc.cfg (other platforms)) находящийся в архиве, так чтобы он указывал на директорию в которой находятся распакованные файлы;
- для компиляции используйте ppcjvm
Тестовые проекты, которые использовались во время разработки можно найти здесь: http://svn.freepascal.org/svn/fpc/branches/jvmbackend/tests/test/jvm
- Ссылки на готовые сборки:
Если интересующая вас система не представлена, или вас интересует непосредственно сборка компилятора/rtl, то в отдельном архиве представлены только используемые Ява-компоненты (Jasmin, javapp, BCEL) . Инструкции по сборке приведены ниже.
- FPC JVM utilities (этот файл вам НЕ нужен, если вы уже сказачли один из файлов, указанный выше)
Пример
Чтобы скомпилировать и запустить следующую программу http://svn.freepascal.org/svn/fpc/branches/jvmbackend/tests/test/jvm/trange1.pp. Нужно выполнить следующие действия:
ppcjvm -O2 -g trange1 java -cp C:\full\path\to\fpcjvm\units\rtl\jvm-java trange1
Замените C:\full\path\to\fpcjvm\units\rtl\jvm-java на полный путь директории units\rtl\jvm-java распакованную из архива скачанного образа.
Внимание: после компиляции создаётся файл trangle1.class. Скорее всего в ключ -cp так же необходимо добавить полный путь к этому файлу (каждый путь должен разделяться символом ";" - в Windows или ":" - в Unix системах)
java -cp C:\full\path\to\fpcjvm\units\rtl\jvm-java;C:\full\path\to\compiled\file trange1
Так или иначе, java должа знать местонахождение .class файлов для RTL и для скомпилированной программы.
Дополнительная информация
- Особенности использования
- Поддерживаемые конструкции языка
- Помощь по отладке Ява-паскаля
- Сборка компилятора и Ява утилит
- Информация о внутренних изменениях в компиляторе и RTL (представляет интерес для разработчиков компилятора и/или RTL)