Difference between revisions of "FPC JVM/ru"

From Free Pascal wiki
m (Дополнительная информация)
m (Пример)
Line 24: Line 24:
  
 
=Пример=
 
=Пример=
 +
==Компиляция==
  
Чтобы скомпилировать и запустить следующую программу http://svn.freepascal.org/svn/fpc/branches/jvmbackend/tests/test/jvm/trange1.pp. Нужно выполнить следующие действия:
+
Пример можно скачать http://svn.freepascal.org/svn/fpc/branches/jvmbackend/tests/test/jvm/trange1.pp
  
 
   ppcjvm -O2 -g trange1
 
   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'' распакованную из архива скачанного образа.
+
==Запуск в Windows==
  
[[FPC_JVM/Usage|Дополнительная информация]].
+
  java -cp C:\full\path\to\fpcjvm\units\rtl\jvm-java;. trange1
  
'''Внимание:''' после компиляции создаётся файл trangle1.class. Скорее всего в ключ -cp так же необходимо добавить полный путь к этому файлу (каждый путь должен разделяться символом ";" - в Windows или ":" - в Unix системах)
+
Замените ''C:\full\path\to\fpcjvm\units\rtl\jvm-java'' на полный путь к директории ''units\rtl\jvm-java'' распакованную из архива сборки.
   java -cp C:\full\path\to\fpcjvm\units\rtl\jvm-java;C:\full\path\to\compiled\file trange1
+
 
Так или иначе, java должа знать местонахождение .class файлов для RTL и для скомпилированной программы.
+
==Run it on Unix-like platforms==
 +
 
 +
   java -cp /full/path/to/fpcjvm/units/rtl/jvm-java:. trange1
 +
 
 +
Замените ''/full/path/to/fpcjvm/units/rtl/jvm-java'' на полный путь к директории ''units/rtl/jvm-java'' распакованную из архива сборки.
 +
 
 +
==Подробности==
 +
 
 +
Смотри [[FPC_JVM/Usage|usage information]] для дополнительной информации.
  
 
=Дополнительная информация=
 
=Дополнительная информация=

Revision as of 23:22, 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

Запуск в Windows

 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 распакованную из архива сборки.

Run it on Unix-like platforms

 java -cp /full/path/to/fpcjvm/units/rtl/jvm-java:. trange1

Замените /full/path/to/fpcjvm/units/rtl/jvm-java на полный путь к директории units/rtl/jvm-java распакованную из архива сборки.

Подробности

Смотри usage information для дополнительной информации.

Дополнительная информация