Java JRE/JDK client vs Java hotspot VM server...

Discussion in 'Bukkit Discussion' started by Sycholic, Mar 23, 2014.

Thread Status:
Not open for further replies.
  1. Offline


    Whats the big difference? if any and why have use one over the other for bukkit? is there a actual difference? does the server run better on the SDK java?

    I keep seeing this on quite a few systems, mainly it seems win8 boxes but question is why? far as I can tell its a seperate package only in solaris and linux it comes packaged together... so why is this showing up on alot of win8 boxes? I mean we do tell people to install the JDK to compile? so why not the SDK?


    What's the difference between the -client and -server systems?

    These two systems are different binaries. They are essentially two different compilers (JITs)interfacing to the same runtime system. The client system is optimal for applications which need fast startup times or small footprints, the server system is optimal for applications where the overall performance is most important. In general the client system is better suited for interactive applications such as GUIs. Some of the other differences include the compilation policy,heap defaults, and inlining policy.

    So... still even reading that since it dont tell much at all... which infact is better.

    Granted only a dev or someone hardcore into java will likely be able to answer but atleast this intrigued mind would like to know...
  2. Offline


    JRE vs JDK:
    JDK provides both the JRE and Java development tools. There should be not difference between the two in terms of performance. Maybe event less, if you're hard drive is essentially 99% fragmented.

    The "SDK" you speak of is highly probably just the JDK; I'm unaware of any Java SDK other than the JDK.

    HotSpot is the virtual machine from Oracle that most Java installation uses.
    The copy-pasted stuff in a nutshell:
    -client attempts to startup as quickly as possible or keep a small impact on the actual computer itself.
    -server prioritizes performance as much as possible.
    The differences between the two is how they manage memory, how much memory to use, and code flows.

    You should use -server for CraftBukkit, possible for the client too.

    Just going to put it out there: most of this stuff you can Google.
  3. Offline


    thats exactly I thought till I started seeing the hotspot JVM messages on some win8 servers and looked into it. apparently it is completely different according to oracle. in unix flavours its already bundled but its not for windows or mac. (atleast according to oracle).

    I dug some more and its odd some places say they there is no differences then others say there is...Im just wondering if this is another one of Oracle's lame naming schemes again like they pulled with Java 6 or is there infact differences in it? and when they mean server java does that mean its more geared to 'building and compiling' servers or dealing with java calls as a server for a website etc.
    dunno its just kinda fuzzy thats why I asked. figured one of the devs (or someone) might have a better insight/experience into the exact differences and maybe even why it lists in like the case above, 2 different JIT's you'll see java7 JRE info then the Java hotspot info on the next line in the server bootup.
  4. Offline


    HotSpot = the Java Virtual Machine(JVM), aka the programm that runs your Java programms.
    JIT = Just In Time (compiler) is a technique in the JVM to compile the Bytecode (aka your .class files) into machinecode (aka 0 and 1) in runtime with various optimizations.
    The -server and -client optons should be 2 different ways how the JIT does the job.
  5. Offline


    yeah problem Syd is thats not a 'option' thats just how Oracle poorly typed it up. According to them the hotspot java is based more for dealing with 'servers' and the normal java7 is for clients. This is basically what Im wondering about, if its even true... if it even makes a difference with bukkit? etc etc. For all we know this can be just Oracle blowing smoke again with names like how they had 3 completely different names for the same Java6 SE. and it cant be clearly the same thing as they clearly not packaging it together for windows and mac but they do for solaris and linux :confused: ? and the JRE and Hotspot are not the same either... you only need a JRE to run java. you need a JDK to compile java so again where does the hotspot fit into? is it a JRE? is it a JDK? is just the name for the complete SDK?

    Only thing Im looking for is to figure out if Java Hotspot is a different version of the java package designed to run/build servers better then vs the normal JDK.
  6. Offline

    Sagacious_Zed Bukkit Docs

    Explaining this from the top again.

    HotSpot is the name for the Java Virtual Machine (JVM) supplied by Oracle. It is found in all the packages from Oracle and OpenJDK. The Java Virtual Machine (JVM) is one part of the Java Runtime Environment (JRE). The Java Development Kit (JDK) is a super set of the tools in the JRE, it includes compilers and other debugging tools.

    "-server" and "-client" are two different command line arguments (sometimes called options) for the JVM. These particular arguments modify behavior of the JVM. These are not two different binaries. For the *nixes its just java, and on windows it is java.exe. However, on windows there is an addition javaw.exe which hides the console window As mentioned -server instructs the JVM to prioritize performance and -client prioritizes latency in startup.

    Java bundling is referring to Java being pre-installed on the operating system.

    These distinctions are important because there are many JVMs that are build and distributed by other parties which have different names. JRE and JDK are generic terms for the collection of tools. While HotSpot is a specific JVM by a particular vendor.
  7. Offline


    All Im trying to figure out is why java from win7 to win8 are not the same. Even bukkit sees hotspot java and java7 as to completely seperate enties. (both oracle java) I just thought it was odd that even bukkit was reporting multiple java on win8 vs 1 java6/7 on a win7 box and since Im now under ubuntu I was just hoping I wasnt missing an important package(s). >> look at JIT Compilier section information... but after digging some more turns out most use only 'server' anyway.

    Sorry dont mind me Im just new to getting into java and honestly if I make something I try and start it off right so Im looking into alot of things this was just one of them. but thanks for the info everyone.
Thread Status:
Not open for further replies.

Share This Page