斯卡拉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工件存储库添加一个解析器. 对于线程访问问题,我在Mac OS X上使用JDK 1.6解决了这个问题 – 当我在其中指定-XstartOnFirstThread时,它工作正常.我找不到JDK 1.7的解决方案. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |