JetCracker

Life-time learner's blog

NetBeans 6.9: Java + Scala – How to compile

Scala Logo

Начнем сразу с проблемы:

Требуется скомпилить вот такой код в среде NetBeans 6.9:

package scala1

import java.awt._;
import java.util._;
import javax.imageio.stream._;
import javax.imageio._;
import java.io.File;
import java.awt.image.BufferedImage;

class Complex(val x : Double, val y : Double) {
  def +(c : Complex) = new Complex(x + c.x, y + c.y)
  def -(c : Complex) = new Complex(x - c.x, y - c.y)
  def *(c : Complex) = new Complex(x * c.x - y * c.y, x * c.y + y * c.x)
  def mod2() = x*x + y*y
  override def toString() = x + "+i" + y
}

object Main {

  def steps(c : Complex, max : Int): Int = {
    var z = new Complex(0, 0)
    for (i <- 0 to max) {
      z = z*z + c
      if (z.mod2 > 4) {
	return i
      }
    }
    return 0
  }

  def main(args: Array[String]) {
    val width = 1000
    val height = 600

    val img = new BufferedImage(width, height, BufferedImage.TYPE_INT_RGB);
    val g = img.getGraphics();

    val viewX = -0.2;
    val viewY = -1.0;
    val viewW = 0.5;
    val viewH = 0.25;
    val dx = 1.0/width; val dy = 1.0/height

    for (y <- 0 to height) {
      for (x <- 0 to width) {
	val p:Double = viewW * (dx*x) + viewX
	val q:Double = viewH * (dy*y) + viewY
	val c = new Complex(p,q)
	val s: Int = steps(c, 255)
	g.setColor(new Color(s/3, s/3, s))
	g.drawLine(x,y,x,y)
      }
    }
    ImageIO.write(img, "png", new File("copmlex-graph.png"));
  }

}

Для того чтобы NetBeans умела работать с языком Scala, нужно установить Scala Kit. К сожалению, в списке доступных плагинов Scala Kit отсутствует, поэтому будем ставить его вручную.

  1. Качаем плагин для NetBeans 6.9 тут: http://sourceforge.net/projects/erlybird/files/nb-scala/
  2. Распаковываем архив во временную папку.
  3. В NetBeans открываем Tools->Plugins и переходим на вкладку Downloaded
  4. Жмем кнопку Add Plugin… и выбираем все распакованные файлы
  5. Устанавливаем плагины
  6. Закрываем NetBeans
  7. Правим файл ~/.bash_profile в любом редакторе, добавляя в него код:
#/usr/bin/sh
export SCALA_HOME=~/scala

Здесь SCALA_HOME – путь к папке, где установлена Scala. Я прописал переменную окружения в скрипте ~/.bash_profile, который стартует во время входа пользователя в систему. Поэтому, чтобы изменения вступили в силу, необходимо выйти из системы и зайти в нее снова.

Ну а теперь можно насладиться программированием на языке Scala в удобной среде NetBeans. 🙂

P.S. Программа в листинге рисует множество Мандельброта. Вот, что может быть результатом ее исполнения:

  Множество Мандельброта (красный)

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

%d bloggers like this: