Как выполнить приложение Scala Swing? - PullRequest
3 голосов
/ 01 ноября 2010

Я новичок в Scala. И пытаюсь выполнить приложение Swing.Я использую scala 2.8. Я успешно скомпилировал программу, но .. при ее выполнении выдается ошибка, подобная отсутствию такого файла. Может ли 1 помочь мне?

я предоставляю код, который пытаюсь выполнить.

Gui.scala

import swing._

object Gui extends SimpleSwingApplication

{
    def top=new MainFrame {
        title="swing"
        val b1=new Button{
            text = "ok"
        }
    } 
}

scalac Gui.scala

он успешно компилируется и создает файл класса, но при попытке

scala Gui

он просто отвечает

Нет такогоФайл

Ответы [ 2 ]

2 голосов
/ 01 декабря 2010

Настройка:

D:\src\scala_ex\ex1>dir
 Volume in drive D is Data
 Volume Serial Number is 5C88-8D6C

 Directory of D:\src\scala_ex\ex1

01.12.2010  09:25    <DIR>          .
01.12.2010  09:25    <DIR>          ..
01.12.2010  09:24               173 gui.scala
               1 File(s)            173 bytes
               2 Dir(s)  24 575 205 376 bytes free

D:\src\scala_ex\ex1>more gui.scala
import swing._

object Gui extends SimpleSwingApplication {
  def top = new MainFrame {
    title = "swing"
    val b1 = new Button{
      text = "ok"
    }
  }
}

D:\src\scala_ex\ex1>scalac -version
Scala compiler version 2.8.1.final -- Copyright 2002-2010, LAMP/EPFL

Компиляция:

D:\src\scala_ex\ex1>scalac gui.scala

D:\src\scala_ex\ex1>dir
 Volume in drive D is Data
 Volume Serial Number is 5C88-8D6C

 Directory of D:\src\scala_ex\ex1

01.12.2010  09:26    <DIR>          .
01.12.2010  09:26    <DIR>          ..
01.12.2010  09:26               485 Gui$$anon$1$$anon$2.class
01.12.2010  09:26               557 Gui$$anon$1.class
01.12.2010  09:26               558 Gui$.class
01.12.2010  09:26             1 467 Gui.class
01.12.2010  09:24               173 gui.scala
               5 File(s)          3 240 bytes
               2 Dir(s)  24 575 201 280 bytes free

Выполнение:

D:\src\scala_ex\ex1>scala -cp . Gui

И приложения запускаются.

1 голос
/ 01 ноября 2010

Это не прямая вставка из кода Scala, так как пустая строка между object Gui и { вызывает ошибку компиляции.

Теперь, если вы исправите эту ошибку и скомпилируете ее с Scala 2.8, вы должны получить эти классы в локальном каталоге:

  • Gui $$ $ 1 тотчас $$ Анон $ 2.class
  • Gui $$ Анон $ 1.class
  • Gui $ .class
  • Gui.class

Если вы этого не сделаете, то либо компиляция не сработала, либо чего-то еще не хватает. Например, если вы объявили package X вверху (и удалили его из примера), тогда Gui будет находиться не в локальном каталоге, а в подкаталоге X, и вы должны вызвать его, набрав scala X.Gui.

Другая возможность состоит в том, что у вас есть переменная окружения Java, указывающая выходной каталог куда-то еще.

...