2014-06-14 12 views
5

Bununla bir saatten biraz fazla kafa kendimi çizilmeye oldum kullanarak çalıştırmak için lwjgl alınamıyor, Google'da hiçbir şey beni karar verilebilmesi mümkün görünmektedir. Ben scala ve sbt eklentileri, Scala 2.11.1 ile IntelliJ IDEA 13.1.3 kullanıyorumIDEA ve SBT

ve SBT 0.13

Düşünme ben sonraki bir

libraryDependencies += "org.lwjgl.lwjgl" % "lwjgl" % "2.9.1" 

Sadece benim build.sbt için lwjgl için Maven depo zeki eklendi ihtiyacım olduğunu öğrenmek için [point the compiler to the LWJGL natives].

Şimdi burada sorun şu: kütüphaneleri indirmek için SBT sorma, biraz zor kütüphanelere işaret yaparak, projenin dizinleri herhangi koyun etmez.

Ben belgelerine anlaşılacağı gibi hatta SBT önceki bir sürümünü zorlayarak, herhangi bir şans [ sbt-lwjgl-plugin] kullanarak çalıştı. Ben yapacağım şey

Yani, çıkmazda kendimi buluyorum? Kitaplığı el ile indirip proje dizinlerine dökün? Yoksa bununla başa çıkmamın daha otomatik bir yolu var mı?

+3

Basit çözüm gibi bir şey yapabilirsiniz: 'lib' adında bir klasör oluşturun ve bu klasöre yerli lwjgl kavanozu yerleştirin. Bu, [SBT belgelerinde yönetilmeyen bağımlılık] 'a yönlendirilir (http://www.scala-sbt.org/release/tutorial/Library-Dependencies.html#Unmanaged+dependencies). Evet, yönetilen daha güzel olurdu, ama muhtemelen çok sık senin lwjgl versiyonunu değiştirmeyeceksin diye aldırış etmem. – bluenote10

cevap

1

Bu biraz eski biliyorum ama bu bu soruna rastlamak başkalarına yardım düşündük. Ne kendim yaptım, siteden kavanoz dosyasını indirmek kavanozdan yerlileri alınsın ve kaynaklar dizine eklemek oldu. Lwjgl'a gelince, bunu benim sbt projeme ekledim. Çalışma sırasında, ben kavanoz yerlileri çıkarılan ve sırasında kavanoz dosyasından yerlileri ayıklanması gelince, Ayrıca

System.setProperty("org.lwjgl.librarypath", <natives-path>) 

kullanarak sonra lwjgl için yerlileri dizinini ayarlamak

System.load("<native-library-name>") 

kullanarak yerel kütüphaneleri yüklü Çalışma zamanı, bu

val source = Channels.newChannel(
NativesLoader.getClass.getClassLoader.getResourceAsStream("<native>")) 

val fileOut = new File(<desination directory>, "<native path in jar>") 
val dest = new FileOutputStream(fileOut) 
dest.getChannel.transferFrom(source, 0, Long.MaxValue) 
source.close() 
dest.close()