• Post Reply Bookmark Topic Watch Topic
  • New Topic
programming forums Java Mobile Certification Databases Caching Books Engineering Micro Controllers OS Languages Paradigms IDEs Build Tools Frameworks Application Servers Open Source This Site Careers Other Pie Elite all forums
this forum made possible by our volunteer staff, including ...
Marshals:
  • Campbell Ritchie
  • Jeanne Boyarsky
  • Ron McLeod
  • Paul Clapham
  • Liutauras Vilda
Sheriffs:
  • paul wheaton
  • Rob Spoor
  • Devaka Cooray
Saloon Keepers:
  • Stephan van Hulst
  • Tim Holloway
  • Carey Brown
  • Frits Walraven
  • Tim Moores
Bartenders:
  • Mikalai Zaikin

Java Upgrade

 
Ranch Hand
Posts: 146
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I just upgraded my installation to JDK 20.1 and Netbeans 17. All of my projects compile OK except one which says:

warning: [options] bootstrap class path not set in conjunction with -source 6
error: Source option 6 is no longer supported. Use 8 or later.

What does that mean and how do I fix it?
How come the other ones work?!
 
Marshal
Posts: 79271
377
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Why do you specifically want to use Java6?
 
Master Rancher
Posts: 4851
74
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
The error message indicates you have a project that is configured to use Java 6.  However, Java 20 does not support this.  Java 6 is considered too old for them to bother to keep making sure it's compatible with Java 20, so they dropped it.

As Campbell asks, is there a reason you want to use Java 6 at this point?  It would probably be best to modify the project to use a later Java version.  You don't have to upgrade all the way to Java 20 necessarily, not all at once.  Try upgrading to Java 8 at least.  After you get everything working for Java 8, then consider upgrading further to a later version.

Note that you don't have to have a single Java installation on your machine - you can run several different ones, for different projects.  You can use a tool like jEnv or sdkman to help manage the different versions on your machine.  I recommend sdkman, which also helps you install the versions, not just switch between them.
 
Neil Barton
Ranch Hand
Posts: 146
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Thank you guys!
I wasn't even aware I had Java 6 on the machine! I found it in the Project Properties and switched it to 20. A few things don't compile but that's just because the libraries no longer exist so I can sort those out individually.
Fixed!
Thanks Again.
 
Campbell Ritchie
Marshal
Posts: 79271
377
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
You don't need to install Java6 to run a Java6 program. It should compile on any more recent version, but it may need updating if there are any deprecated features used.
 
Mike Simmons
Master Rancher
Posts: 4851
74
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Campbell Ritchie wrote:It should compile on any more recent version, but it may need updating if there are any deprecated features used.


Regardless of whether deprecated features are used, the message is pretty clear that Java 20 won't support the "--source 6" option - it needs to be upgraded to at least "--source 8".  Yes, you can run older versions of Java on a newer JDK, but there are some limits.  They haven't committed to supporting all versions of Java in perpetuity... and Java 6 is pretty old now.  The current Longer-Term Support (LTS) versions are Java 8, Java 11, and Java 17.  A new JDK won't support older language features.  

If you really needed to run Java 6 with a currently-supported JDK, you can still use Java 8 to run with "--source 6", that would work fine.  Probably Java 11 and maybe Java 17 would work too, but I'm not motivated enough to check that now.
 
Saloon Keeper
Posts: 27819
196
Android Eclipse IDE Tomcat Server Redhat Java Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Mike Simmons wrote:
Note that you don't have to have a single Java installation on your machine - you can run several different ones, for different projects.  You can use a tool like jEnv or sdkman to help manage the different versions on your machine.  I recommend sdkman, which also helps you install the versions, not just switch between them.



Repeated for emphasis. I've probably got 5 different versions on my development machine at the moment, though most are just failure to clear out unused stuff now.

Also note that the source and target Java versions don't have to reflect installed JVM/JDK versions. They indicate the expected syntax level (source) and bytecode level (target) that you want the build to follow. Thanks to Java's backwards compability features you can do crazy things like tell a Java 11 JDK to compile source written to be conformant with the Java 6 specs and produce bytecodes that can run under a Java 8 (or later) VM.
 
Tim Holloway
Saloon Keeper
Posts: 27819
196
Android Eclipse IDE Tomcat Server Redhat Java Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Incidentally, Oracle's JDKs for the Red Hat/CentOS/Fedora architecture are available from their standard download location in Red Hat Package Manager (RPM) form and you can install whatever versions you want using the RPM system utility. Each JDK or JRE (where applicable) gets its own subdirectory under /usr/java.

For OpenJDK, The stock RPM jacks more intimately into the Linux filesystem, and while you can have multiple OpenJDK's installed, it's a bit trickier to juggle. Especially if you deal with the "alternatives" subsystem. OpenJDK and Orace JDKs can both live on the same machine at the same time. As can IBM's, if you are so inclined.
 
Mike Simmons
Master Rancher
Posts: 4851
74
  • Likes 1
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Another gotcha is that the --source and --target flags do not affect the libraries that are used when compiling or running.  And I don't think they pay any attention to @since used in Javadoc either.  So if, extending Tim's example, you use Java 11 to compile code using the Java 6 spec that will run on JDK 8 or later, you might still use a method like the String.strip() method, which only appeared in Java 11.  If you're using JDK 11, it won't complain if you compile that with --source 6, nor will it complain when you run it with --target 8.  Because it's still using the libraries from JDK 11.  However, if you try to run the compiled code using JDK 8, it will throw a runtime error because it can't find the strip() method you used.

Of course, if  (going back to using Java 11 with --source 6 and --target 8) you had tried to use a Stream method using a lambda, that would not have been allowed in the first place, because the lambda would not be allowed under Java 6,  But if you use a Java 11 method but no Java 11 syntax or language features, that's fine.
 
Tim Holloway
Saloon Keeper
Posts: 27819
196
Android Eclipse IDE Tomcat Server Redhat Java Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Actually, I thought that the @since JavaDoc tag simply added a "since" indication to the generated documentation. As far as I know, it has nothing to do with what version of Java you are targeting. In fact, "@since 1776" is probably legal.
 
Neil Barton
Ranch Hand
Posts: 146
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Thanks folks, that's very helpful, not sure if I should take this to a new topic!
Actually I'm happy to upgrade all of my projects to Java 20 so that's my current goal. My next problem is a mail sending function, it uses DataHandler which seems to have been deprecated in V11 but I can't seem to find the replacement. How do I attach a file to an email I'm sending.
This is my code, the routine is a general routine and if one of the flags in G (a global variable that contains the message to be sent) says a file is to be attached it does this:
                   msg.setText(G.messagetext);
                   BodyPart messageBodyPart = new MimeBodyPart();
                   messageBodyPart.setText(G.messagetext);
                   Multipart multipart = new MimeMultipart();
                   multipart.addBodyPart(messageBodyPart);
                   messageBodyPart = new MimeBodyPart();
                   DataSource source = new FileDataSource(G.filename);
                   messageBodyPart.setDataHandler(new DataHandler(source));
                   messageBodyPart.setFileName(G.filename);
                   multipart.addBodyPart(messageBodyPart);
                   msg.setContent(multipart);
This used to work. Now, in Java 20 Netbeans reports that it cannot find the source for DataSource, FileDataSource and DataHandler which I think were in Javax. I've read that Javax was incorporated into Java20 and so the calls should still work. Note that all the other declarations (BodyPart, Multipart, MimeBodyPart etc) are all found, so what's wrong with these three?
 
Tim Holloway
Saloon Keeper
Posts: 27819
196
Android Eclipse IDE Tomcat Server Redhat Java Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
A lot of javax was not core Java, it was Java EE and I think that includes the entirety of JavaMail. Java EE is no longer an Oracle(Sun) product and has been taken over by the Apache Jakarta foundation. As a consequence, the latest JEE packages are not "javax" anymore, they are "jakarta".
 
Neil Barton
Ranch Hand
Posts: 146
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Thanks Tim,
I had read something along those lines but after they said that was when they said it was all in Java 20! I think you're right though. Can you tell me where to get this Jakarta library. I went to the jakarta site but they just list products that use it, no download of the jar itself!
 
Tim Holloway
Saloon Keeper
Posts: 27819
196
Android Eclipse IDE Tomcat Server Redhat Java Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Generally, I get my Java EE classes in one of 2 ways.

1. Provided with a JEE server (for example, Tomcat 10 and later)

2. As Maven dependencies when building a WAR or other JEE deployable module

A full-stack server such as Wildfly will likely not have much, if any Maven dependencies, but Tomcat only contains the servler/JSP classes and maybe some support stuff, so to use things like JPA or JavaMail you have to use your build tool (e.g., Maven) to add them to the WAR.
 
Neil Barton
Ranch Hand
Posts: 146
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Thanks Tim,
In the end I downloaded it from here: https://jar-download.com/?search_box=jakarta+apache+org
I think that's a trustworthy source!
It does now, at least, compile. We'll see what happens when I run it!
 
Neil Barton
Ranch Hand
Posts: 146
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Oh, I thought it compiled. It still failed. I don't use Maven, I use Netbeans (it's just easier!Usually!). I downloaded Tomcat (which I have used before) and found DataSource in several of the JAR files. I tried tomcat-jdbc.jar which has DataSource in it as a class (the others don't) but it still failed to compile. What am I doing wrong?
The three it can't find are :
DataSource
FileDataSource
DataHandler
As I said this is a generic email sending routine. I use it a lot and this is a big problem for me. I appreciate my knowledge is limited but I learn fast when I can find something to go at.
 
Tim Holloway
Saloon Keeper
Posts: 27819
196
Android Eclipse IDE Tomcat Server Redhat Java Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I don't recommend using your IDE to build projects exclusively. I got burned really, really bad a while ago when it looked like I was going to have to wipe my mard drive, install an obsolete copy of Windows, put an obsolete service pack on it, install an obsolete Visual Studio (it wouldn't run on the latest Windows), apply obsolete service packs to IT, all to make a 1-line source code change at 3 AM. I was able to avoid the worst of it, but it was not a fun experience.

Maven doesn't require an IDE or even a GUI and it is far less susceptible to obsolescence issues. However, Netbeans will work quite happily with Maven. It's not an
"either-or" situation.

As a rule you DON'T want to download the raw JEE jars. For one thing, a lot of JEE is pre-installed into your JEE server and you'll get classpath conflicts if you have the same stuff coming in from 2 different directions. For another, it's a lot tidier to let Maven (or Gradle) supply what you need automatically. The Maven archives have the jakarta classes sliced and diced in a way that makes them installable in a non-conflicting way.
 
Neil Barton
Ranch Hand
Posts: 146
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Thank you Tim,
That's a fascinating insight and very helpful. Could I push my luck and ask you to expand on "will work quite happily with Maven". I'm obviously not up to speed on Maven (I will go and have a look) I thought it was a rival IDE. How can you get Netbeans & Maven to work together? My understanding was that Maven had it's own configuration files, how do I tie them into NB?
Thank you for your help, it's very much appreciated.
 
Tim Holloway
Saloon Keeper
Posts: 27819
196
Android Eclipse IDE Tomcat Server Redhat Java Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
No, Maven is not an IDE. It's a build tool. An IDE can use it, but to build a Java project with Maven all you need is a command line prompt, an installed JDK, and Maven (which is downloadable as a ZIP file from https://maven.apache.org).

I am not up to date on NetBeans, but you will actually probably find support functions for Maven pre-installed in it. If not, then I'm sure a plugin can be installed. Ask in the NetBeans IDE forum for assistance.

A Maven project produces one and only one target component (JAR, WAR, EAR, or whatever). At the root of the project is the pom.xml file which describes the component to be built, the library dependencies it has, and the name under which the project output can then be retrieved from a Maven archive for other Maven projects to use.

Maven does not define build rules or scripts. Instead, it pursues goals, using plugin components called "mojos". Many times a mojo will internally invoke other mojos so that a simple goal such as "mvn assembly" will invoke the compile and war goals. The goals depend on a specific directory structure in the Maven project. For example, /src/main/java for application source code and /src/test/java for the unit test Java code. Output goes into the /target subdirectory tree, which is deleted by "mvn clean" and re-created when needed.

Maven keeps a local cache of Maven dependency libraries, so an initial Maven build can take a while, as all of the dependencies are downloaded from external Maven repositories, but after that, a build fetches the cached copy. That means you don't have duplicate copies of common libaries in every source project. Libraries (artefacts) all carry a standardized naming and version convention, so I can take a Maveen project, do a "mvn clean", ZIP it up and email it to Ulan Bator where someone with a compatible JDK version (as we mentioned in the start of this thread) and Maven can completely reconstruct the target without any further requirements. And believe me, this is a VAST improvement on pre-Maven projects I worked on where if your PC's file system layout was not similar to the system that the project came from, you often could not build at all (when it didn't actively conflict!).

So in short, Maven is a very useful tool to know. Many open-source Java projects use it. It was a big contributor to Gradle, which is like Maven, but extends the concept for a multi-language environment (Android projects are often mixed Java and Kotlin, for example).
 
Marshal
Posts: 4519
572
VSCode Eclipse IDE TypeScript Redhat MicroProfile Quarkus Java Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Tim Holloway wrote:I am not up to date on NetBeans, but you will actually probably find support functions for Maven pre-installed in it. If not, then I'm sure a plugin can be installed. Ask in the NetBeans IDE forum for assistance.


I'm not a NetBeans user myself, but my understanding is that NetBeans actually uses an embedded version of Maven under the covers.
 
Neil Barton
Ranch Hand
Posts: 146
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Thanks Guys,
I do have problems with building apps, especially when I move from my main computer to my laptop (if I go away). The build process is quite lengthy as well sometimes and this may answer those. I'm off to have a look at it.
Thanks for the pointers.
 
Author
Posts: 51
6
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
One complication with Java upgrades can occur if the classes you use in your legacy code are removed. The latter can occur, for example, if you were using some JEE classes and those classes are removed in a later version of JSE.

Aside from removal of classes, there is also a case where classes are moved into another package.

Upgrading Spring Boot applications to use a more recent version can be particularly difficult for the above and other reasons.
 
Tim Holloway
Saloon Keeper
Posts: 27819
196
Android Eclipse IDE Tomcat Server Redhat Java Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Stephen Morris wrote:One complication with Java upgrades can occur if the classes you use in your legacy code are removed. The latter can occur, for example, if you were using some JEE classes and those classes are removed in a later version of JSE.



That begs some explanation, since JEE and JSE are supposed to be two separate sets of classes.

I'll grant that there seems to be some fuzz as to whether JDBC is JSE or JEE, but in general, you're going to be getting actual JEE classes from external JEE class libraries, whereas JSE is the core st of classes in the JVM.

And I don't think any of us are particularly enjoying that JEE's class package base has changed from "javax" to "jakarta". Though it does make the distinction plainer, aside from the purely legal reasons for the change.
 
Stephen Morris
Author
Posts: 51
6
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I ran into this when I was using the DataTypeConverter class in Java 8. No problem there but on upgrading to a later version of Java, it no longer compiled because the class had been moved out of the JSE as it was deemed to be part of JEE.
 
Tim Holloway
Saloon Keeper
Posts: 27819
196
Android Eclipse IDE Tomcat Server Redhat Java Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Stephen Morris wrote:I ran into this when I was using the DataTypeConverter class in Java 8. No problem there but on upgrading to a later version of Java, it no longer compiled because the class had been moved out of the JSE as it was deemed to be part of JEE.



A lot of us got nailed when JAXB was pushed out of the JSE standard class package set. In fact, our forum software took a hit on that!
 
Stephen Morris
Author
Posts: 51
6
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
That's interesting (for uninvolved observers I mean!). The issue of classes being moved around the Java platforms is kind of a text book example of the total cost of ownership (TCO) of code. If I use class X and then X gets moved from the JSE to JEE, I then have to incur the cost of repairs, which increases my TCO.

Changes like the JAXB rehoming in JEE have the troublesome effect of breaking source code compatibility. In fairness, such changes do pass through a deprecation cycle, but not everyone notices the notifications :-(.
 
Tim Holloway
Saloon Keeper
Posts: 27819
196
Android Eclipse IDE Tomcat Server Redhat Java Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
One of the things that drove me off the Microsoft development ecosystem was  the continual breakage of languages, resources and tools. I've recounted some of my worst nightmares elsewhere, but I really got irritated when they were changing database APIs almost weekly at one point.

Java's deprecation mechanisms and "big-enterprise" aversion to change have made it a relatively stable platform, but you can only carry stuff for so long.

As I've said before, one of the biggest misconceptions people have about software is that once written, it never rots, probably second only to "All You Have To Do Is…"

For the most part, Java software rots from the outside in as hardware becomes obsolete/replaced, OS's go through evolution and so forth. But as we've seen, even Java isn't immune to more localized changes.



Speaking of "once written, forever", I knew a couple of people here in town who got together and formed a project back in the 1960s to create a Data Processing service company to process mortgage loans. One of them told me that they started out by hiring programmers to create the system, but some had misgivings: "What are we going to do with these expensive (obviously pre-offshoring) programmers once all the programs have been written?" asked one. Well, they had about 1200 people by the turn of the Millenium, including serveral hundred programmers and I understand that the core functions of the company were last sold for over $1B.
 
Stephen Morris
Author
Posts: 51
6
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
The Microsoft philosophy used to be "good enough" software. Not sure how stable it is these days as a platform, but some organizations have an interesting experience with security updates. Once the updates are applied, many dependent systems cease working and remain so until some/all of the updates are reverted. Who benefits from such a cycle? It probably explains why Linux is so popular.

Compared to the above, Java issues pale into insignificance and this reflects the power of the open source model, as long as that open source code is well-maintained.

Interesting story about the Data Processing service! Fast forward to WhatsApp which sold a few years back for a similar amount but I believe with a headcount of less than 20.

 
Saloon Keeper
Posts: 10750
86
Eclipse IDE Firefox Browser MySQL Database VI Editor Java Windows ChatGPT
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator

Stephen Morris wrote:It probably explains why Linux is so popular.


I would have bailed on Windows decades ago if it weren't for their eco system.
 
Tim Holloway
Saloon Keeper
Posts: 27819
196
Android Eclipse IDE Tomcat Server Redhat Java Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Windows XP was the last Windows I worked with professionally. Windows probably would be obscure except that originally it was tied closesly to IBM back when "nobody ever got fired for buying IBM". That is to say, when you have mediocre management and they want someone to hold their hand. Which frankly, I don't feel IBM does any more unless maybe you're Fortune 20 or so. I'm surprised in fact, that they haven't gone bust. Microsoft, having arrangements to pre-install Windows on most off-the-shelf computers can rely on inertia for its ongoing success.

Windows XP was probably the best Windows, but that's when I was getting pummelled by instabilities. It was OLE/COM coming into its stride and they kept playing around with completely incompatible API models. I know someone whose company went deep into a Flashy New Windows technology to literally get blown out of the water at launch time by an even newer, flashier Windows technology. Enough, already.

XP's biggest fault was that it was the first fumbling attempt to make a Windows whose design goals considered security as being (almost) as important as the freedom to pass data/control back and forth between random services. Windows 7 wins the prize for actually making that more or less workable. Linux, being descended from Unix, which grew up in a hostile environment (multiple students hacking each other's resources on a shared computer) didn't have to be redesigned much for LANs and the Internet.

My wife has a Windows 10 computer. It makes frequent random speaker-blasting thumps and my best analysis is that there's a power-saver feature kicking in on the audio hardware (both motherboard and HDMI) that doesn't understand how to go quietly into the night. There are, based on research, about 14 different things you can do that are supposed to stop that and none of them worked.

Linux, incidentally, is presently supporting about 5 different generations of audio/media/MIDI control subsystems and they can be confusing, but at least they keep quiet!

Windows 11 has a horrible reputation. I think that Microsoft is likely rethinking desktop operations and that someday all they may provide is a thin interface to Windows-on-the-cloud. At which time we may end up with 1960's-style time-sharing systems all over again, but with GUI. Pay by the minute plus additional fees for your apps.

As for me, I no longer need Microsoft to keep me from bankruptcy, so I live quite happily in the Land of the Penguin.
 
Stephen Morris
Author
Posts: 51
6
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
I remember Windows NT was touted as the next big thing in the late nineties. In retrospect, it looks like the world was just waiting for Linux and Java! Though, C# and dotnet seem to be quite good! Every few years, one language gets touted as the replacement for all others, e.g., around 2014 I think Python was about to demolish all other programming languages. Then, a few years later it was JavaScript that was set to take over the world of enterprise development. Then, Scala and so on probably ad infinitum :-).
 
Tim Holloway
Saloon Keeper
Posts: 27819
196
Android Eclipse IDE Tomcat Server Redhat Java Linux
  • Mark post as helpful
  • send pies
    Number of slices to send:
    Optional 'thank-you' note:
  • Quote
  • Report post to moderator
Windows 3 and 9x were hacked versions of DOS. Ironically, they ran their DOS command windows as full virtual machines, but Windows itself was not in a VM even though it was launched from DOS itself.

Windows XP got its core design from DEC VMS technology, and unlike its predecessors was designed from the start as a fully-preemptive OS, though not with the security paranoia that shaped Unix/Linux. Another noteworthy difference is that the GUI is hard-wired into Windows. Unix/Linux (and the Commodore Amiga OS in 1986) have always maintained their GUI subsystems as distinct replaceable products. And in fact, my production servers do not have GUI installed at all. They only run via command-shell. Saves me about 100MB of RAM for application use.

I think I picked up my first Linux (Slackware) about 1994 at a Hamvention. From the CD you would generate 2 floppies: a boot disk and a root disk and everything else worked up from there. So Linux was already spreading by the release of Windows 95.

I think we've long since departed from the original topic of this thread, so I hope that we've answered that question adequately!
 
Well THAT's new! Comfort me, reliable tiny ad:
a bit of art, as a gift, that will fit in a stocking
https://gardener-gift.com
reply
    Bookmark Topic Watch Topic
  • New Topic