加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

斯卡拉SWT项目与SBT

发布时间:2020-12-16 09:12:15 所属栏目:安全 来源:网络整理
导读:如何在SBT中创建 Scala SWT项目? 我知道您可以使用GIT存储库: RootProject(uri("http://git.eclipse.org/gitroot/platform/eclipse.platform.swt.binaries.git")) 但是我不知道SWT是如何和可能的. 提前致谢, 艾格. 编辑: 我必须手动下载.它编译,但运行时
如何在SBT中创建 Scala SWT项目?

我知道您可以使用GIT存储库:

RootProject(uri("http://git.eclipse.org/gitroot/platform/eclipse.platform.swt.binaries.git"))

但是我不知道SWT是如何和可能的.

提前致谢,
艾格.

编辑:

我必须手动下载.它编译,但运行时我得到无效的线程访问错误:

***WARNING: Display must be created on main thread due to Cocoa restrictions.
[error] (run-main) org.eclipse.swt.SWTException: Invalid thread access

即使我使用:

javaOptions := Seq("-XstartOnFirstThread","-d64")

这是主要的类:

import org.eclipse.swt._
import org.eclipse.swt.layout._
import org.eclipse.swt.widgets._

object Main extends App {
    val display = new Display
    val shell = new Shell(display)
    shell.setLayout(new GridLayout())
    shell.pack
    shell.open
    while (!shell.isDisposed) {
        if (!display.readAndDispatch)
            display.sleep
    }
    display.dispose
}

再次感谢,
艾格.

解决方法

将其添加到您的build.sbt中:

resolvers += "swt-repo" at "https://swt-repo.googlecode.com/svn/repo/"

libraryDependencies += {
  val os = (sys.props("os.name"),sys.props("os.arch")) match {
    case ("Linux",_) => "gtk.linux.x86"
    case ("Mac OS X","amd64" | "x86_64") => "cocoa.macosx.x86_64"
    case ("Mac OS X",_) => "cocoa.macosx.x86"
    case (os,"amd64") if os.startsWith("Windows") => "win32.win32.x86_64"
    case (os,_) if os.startsWith("Windows") => "win32.win32.x86"
    case (os,arch) => sys.error("Cannot obtain lib for OS '" + os + "' and architecture '" + arch + "'")
  }
  val artifact = "org.eclipse.swt." + os
  "org.eclipse.swt" % artifact % "3.8"
}

它将首先为SWT工件存储库添加一个解析器.
然后它将检测您的操作系统版本并为其下载适当的JAR.

对于线程访问问题,我在Mac OS X上使用JDK 1.6解决了这个问题 – 当我在其中指定-XstartOnFirstThread时,它工作正常.我找不到JDK 1.7的解决方案.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读