ฉันจะรับเวอร์ชัน Scala จากภายใน Scala ได้อย่างไร


91

นี่ไม่เกี่ยวกับตัวเลือกคอมไพเลอร์บรรทัดคำสั่ง ฉันจะรับเวอร์ชัน Scala ภายในโค้ดโดยทางโปรแกรมได้อย่างไร

หรืออีกวิธีหนึ่งปลั๊กอิน Eclipse Scala v2 เก็บพา ธ ไปที่scalacใด


1
Scala IDE สำหรับ Eclipse ไม่เก็บพา ธ ไปยังscalac; เรียกใช้คลาสคอมไพเลอร์โดยตรงจากภายในด้วย Eclipse JVM
Jean-Philippe Pellet

2
@ Jean-Philippe เม็ดขอบคุณครับผมได้พบว่าscala.sys.propsการอ้างอิงสิ่งที่ดูเหมือนจะห้องสมุดสกาล่าภายใต้สิ่งที่ชอบsun.boot.class.path -> F:\eclipse\configuration\org.eclipse.osgi\bundles\316\1\.cp\lib\scala-library.jar;(มีjar's library.proertiesมีversion.number=2.9.0.final) แต่เนื่องจากscala.sys.propsอยู่ในนั้นเนื่องจากมี2.9.0เพียงคำใบ้เท่านั้น :)
mlvljr

มีใครบางคนโปรดทำให้เป็นวิกิ! :)
mlvljr

.. ตรวจสอบว่าปีนี้จะได้รับ 100 upvotes อาจจะผลักดันต่อไปผู้คน (ใครจะรู้จัก Scala ก็สับสนมากจนแม้แต่สิ่งที่เรียบง่ายก็อาจทำให้คุณไขปริศนาได้)
mlvljr

คำตอบ:


123

สิ่งนี้จะใช้งานได้โดยไม่ต้องเข้าถึงscala-compiler.jar:

Welcome to Scala version 2.9.1.final (Java HotSpot(TM) 64-Bit Server VM, Java 1.6.0_26).
Type in expressions to have them evaluated.
Type :help for more information.

scala> util.Properties.versionString
res0: java.lang.String = version 2.9.1.final

3
ฉันต้องเพิ่ม scala เนื่องจากมีการโหลดไลบรารี spark ก่อน ดังนั้นscala.util.Properties.versionString
Francisco López-Sancho

48

มีสามวิธีในการรับเวอร์ชัน Scala -

scala> util.Properties.versionNumberString
res103: String = 2.11.4

scala> util.Properties.versionString
res104: String = version 2.11.4

scala> util.Properties.versionMsg
res105: String = Scala library version 2.11.4 -- Copyright 2002-2013, LAMP/EPFL

2
อันแรกอร่อยที่สุดในหน้านี้ดูเหมือน :)
mlvljr

1
FYI util.Properties.versionNumberStringมีอยู่ตั้งแต่ scala 2.10.x. สำหรับ scala ด้านล่าง 2.10.x คุณสามารถใช้util.Properties.releaseVersion.getOrElse("unknown version")เพื่อรับสตริงหมายเลขเวอร์ชัน
jordom

15

คุณสามารถรับเวอร์ชัน Scala ได้ดังนี้:

scala> scala.tools.nsc.Properties.versionString
res7: java.lang.String = version 2.9.0.final

ฉันไม่ทราบข้อมูลเฉพาะของปลั๊กอินแม้ว่า


ฉันคิดว่าคุณสามารถใช้ได้scala.tools.nsc.Properties.versionStringทุกที่
HairyFotr

ในimport scala.tools.nsc.Properties;เหมืองบอกว่า "object tools ไม่ใช่สมาชิกของแพ็คเกจ ***. scala" :(
mlvljr

7
scala.tools...จะใช้ได้เฉพาะในกรณีที่scala-compiler.jarอยู่ใน classpath
michael.kebe

9

นอกจากนี้เรายังสามารถติดตั้งเวอร์ชัน Scala ได้

  1. เปิดพรอมต์คำสั่ง
  2. พิมพ์ Scala
  3. คุณจะได้รับผลลัพธ์ต่อไปนี้:

ยินดีต้อนรับสู่ Scala เวอร์ชัน 2.10.3 (Java HotSpot (TM) 64-Bit Server VM, Java 1.8.0_6 0) พิมพ์นิพจน์เพื่อประเมิน ประเภท: help for more information.

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.