object JavaRuntime
- Alphabetic
- By Inheritance
- JavaRuntime
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @IntrinsicCandidate() @native()
- def current: JavaRuntime
Detects the runtime of the running JDK instance.
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- def getJavaVersionFromJavaHome(javaHome: AbsolutePath): Option[String]
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @IntrinsicCandidate() @native()
- val home: AbsolutePath
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def javaCompiler: Option[JavaCompiler]
- val javac: Option[AbsolutePath]
- def javacBinaryFromJavaHome(home: AbsolutePath): Option[AbsolutePath]
Points to the javac binary location.
Points to the javac binary location.
The javac binary can be derived from javaHome. However, the home might point to different places in different operating systems. For example, in Linux it can point to the home of the runtime instead of the full java home. It's possible that
bin/javac
doesn't exist in the runtime home, but instead in the full home where the JDK installation was done. Therefore, if we don't find javac in the usual location, we go to the parent of java home and attempt the search again. If nothin works, we just returnNone
and let the caller of this function handle this case appropriately. - lazy val loadJavaDebugInterface: Try[Unit]
Loads the java debug interface once.
Loads the java debug interface once.
The Java Debug Interface is implemented in Java < 9 in an auxiliary jar called
tools.jar
. The tools jar is only accessible in JDKs but it's not loaded by default (users need to load it manually when they initialize an application that requires it by setting up the classpath).To avoid our users from doing such a thing, we instead try to load the JDI by finding the tools.jar dynamically on the java home of a JDK and then side-effecting on the system classloader to attempt to load it.
We only do this once and cache its result so that all debug clients know whether debugging is supported or not in this bloop server instance.
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @IntrinsicCandidate() @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @IntrinsicCandidate() @native()
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- val version: String
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- case object JDK extends JavaRuntime with Product with Serializable
- case object JRE extends JavaRuntime with Product with Serializable
Deprecated Value Members
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable]) @Deprecated
- Deprecated
(Since version 9)