How to tell if JDK is available from within running JVM?How do I call one constructor from another in Java?How do I create a Java string from the contents of a file?How do I generate random integers within a specific range in Java?How to get an enum value from a string value in Java?How can I tell if I'm running in 64-bit JVM or 32-bit JVM (from within a program)?What is the difference between JVM, JDK, JRE & OpenJDK?How to install the JDK on Ubuntu Linuxeclipse running programs without jdk“Error running javac compiler” in AntDoes Java JIT cheat when running JDK code?
A cubeful of three-dimensional devilry
Does dual boot harm a laptop battery or reduce its life?
What would the United Kingdom's "optimal" Brexit deal look like?
Narset, Parter of Veils interaction with Aria of Flame
Wrapping IMemoryCache with SemaphoreSlim
What is the reason for cards stating "Until end of turn, you don't lose this mana as steps and phases end"?
Desktop app status bar: Notification vs error message
Do the books ever say oliphaunts aren’t elephants?
Did Vladimir Lenin have a cat?
How do I find the FamilyGUID of an exsting database
To find islands of 1 and 0 in matrix
Unknown indication below upper stave
Why did some Apollo missions carry a grenade launcher?
What is the German equivalent of the proverb 水清ければ魚棲まず (if the water is clear, fish won't live there)?
My employer is refusing to give me the pay that was advertised after an internal job move
Why is softmax function used to calculate probabilities although we can divide each value by the sum of the vector?
How can Paypal know my card is being used in another account?
Why is it "on the inside" and not "in the inside"?
Polish citizen flying from Canada to Honolulu with a layover in Chicago
Complaints from (junior) developers against solution architects: how can we show the benefits of our work and improve relationships?
Shouldn't there be "us" instead of "our" in this sentence?
A variant of the Multiple Traveling Salesman Problem
Scam? Checks via Email
Is there an antonym(a complementary antonym) for "spicy" or "hot" regarding food (I DO NOT mean "seasoned" but "hot")?
How to tell if JDK is available from within running JVM?
How do I call one constructor from another in Java?How do I create a Java string from the contents of a file?How do I generate random integers within a specific range in Java?How to get an enum value from a string value in Java?How can I tell if I'm running in 64-bit JVM or 32-bit JVM (from within a program)?What is the difference between JVM, JDK, JRE & OpenJDK?How to install the JDK on Ubuntu Linuxeclipse running programs without jdk“Error running javac compiler” in AntDoes Java JIT cheat when running JDK code?
.everyoneloves__top-leaderboard:empty,.everyoneloves__mid-leaderboard:empty,.everyoneloves__bot-mid-leaderboard:empty margin-bottom:0;
Note: All the similar questions are answering this from the perspective of the shell (e.g. Is javac
available? java -version
or which java
). I'm looking explicitly for the perspective of the currently running JVM.
There are programs that require to be run from within a JDK's JRE, not "just" a JRE. I'm wondering if there's a simple way to find out what my currently running program is executed in.
I'm looking for a generic way to figure this out, rather than an analysis of the program in question and duplicating its use of JDK features. That's why I'd prefer not to execute an external process testing if javac
is on the path, if possible. I'm rather looking for some code that will run within a JDK, but fail within a JRE.
It could be Class.forName
with a class that's only available in a JDK. It could be a system property. Or anything else.
If I have to execute an external process with javac: So be it. But I'd prefer something simpler and generic.
Clarification from deep down in the comments:
From time to time I'm running into this problem with Liferay, which requires to be run from within a JDK's JRE. I was entertaining the thought to just deploy another plugin that provides a userfriendly error message if run without a JDK available. I shy away from analyzing which code is the one failing in a JRE-only environment, and I don't want to modify Liferay's code, rather add my own plugin to do the analysis and warn.
java jvm liferay
|
show 12 more comments
Note: All the similar questions are answering this from the perspective of the shell (e.g. Is javac
available? java -version
or which java
). I'm looking explicitly for the perspective of the currently running JVM.
There are programs that require to be run from within a JDK's JRE, not "just" a JRE. I'm wondering if there's a simple way to find out what my currently running program is executed in.
I'm looking for a generic way to figure this out, rather than an analysis of the program in question and duplicating its use of JDK features. That's why I'd prefer not to execute an external process testing if javac
is on the path, if possible. I'm rather looking for some code that will run within a JDK, but fail within a JRE.
It could be Class.forName
with a class that's only available in a JDK. It could be a system property. Or anything else.
If I have to execute an external process with javac: So be it. But I'd prefer something simpler and generic.
Clarification from deep down in the comments:
From time to time I'm running into this problem with Liferay, which requires to be run from within a JDK's JRE. I was entertaining the thought to just deploy another plugin that provides a userfriendly error message if run without a JDK available. I shy away from analyzing which code is the one failing in a JRE-only environment, and I don't want to modify Liferay's code, rather add my own plugin to do the analysis and warn.
java jvm liferay
1
It will always be running on a JRE.
– mwarren
Jul 19 at 14:47
1
The JDK supplies the tools to build a Java application and has a JRE included to run applications on. A JRE installation just has the JRE and no build tools.
– mwarren
Jul 19 at 14:50
2
Consider the keywords: a "kit" is something that you use; an "environment" is something that you live in. You make something in the kit and then run it in the environment.
– zero298
Jul 19 at 14:53
4
Since Java has become modular, the distinction between JRE and JDK is obsolete. You have to clarify which feature you need and then, check for the presence of that feature. If it is the compiler, you can check for the presence of the compiler API. But if you don’t use that API but require the presence of a command linejavac
tool, you have to check for precisely that.
– Holger
Jul 19 at 14:57
2
So you’re saying, the problem is that Liferay has certain requirements on the environment, but doesn’t provide a user friendly error message? Then, you should file a bug report to Liferay’s developers and that’s it.
– Holger
Jul 19 at 15:03
|
show 12 more comments
Note: All the similar questions are answering this from the perspective of the shell (e.g. Is javac
available? java -version
or which java
). I'm looking explicitly for the perspective of the currently running JVM.
There are programs that require to be run from within a JDK's JRE, not "just" a JRE. I'm wondering if there's a simple way to find out what my currently running program is executed in.
I'm looking for a generic way to figure this out, rather than an analysis of the program in question and duplicating its use of JDK features. That's why I'd prefer not to execute an external process testing if javac
is on the path, if possible. I'm rather looking for some code that will run within a JDK, but fail within a JRE.
It could be Class.forName
with a class that's only available in a JDK. It could be a system property. Or anything else.
If I have to execute an external process with javac: So be it. But I'd prefer something simpler and generic.
Clarification from deep down in the comments:
From time to time I'm running into this problem with Liferay, which requires to be run from within a JDK's JRE. I was entertaining the thought to just deploy another plugin that provides a userfriendly error message if run without a JDK available. I shy away from analyzing which code is the one failing in a JRE-only environment, and I don't want to modify Liferay's code, rather add my own plugin to do the analysis and warn.
java jvm liferay
Note: All the similar questions are answering this from the perspective of the shell (e.g. Is javac
available? java -version
or which java
). I'm looking explicitly for the perspective of the currently running JVM.
There are programs that require to be run from within a JDK's JRE, not "just" a JRE. I'm wondering if there's a simple way to find out what my currently running program is executed in.
I'm looking for a generic way to figure this out, rather than an analysis of the program in question and duplicating its use of JDK features. That's why I'd prefer not to execute an external process testing if javac
is on the path, if possible. I'm rather looking for some code that will run within a JDK, but fail within a JRE.
It could be Class.forName
with a class that's only available in a JDK. It could be a system property. Or anything else.
If I have to execute an external process with javac: So be it. But I'd prefer something simpler and generic.
Clarification from deep down in the comments:
From time to time I'm running into this problem with Liferay, which requires to be run from within a JDK's JRE. I was entertaining the thought to just deploy another plugin that provides a userfriendly error message if run without a JDK available. I shy away from analyzing which code is the one failing in a JRE-only environment, and I don't want to modify Liferay's code, rather add my own plugin to do the analysis and warn.
java jvm liferay
java jvm liferay
edited Jul 22 at 17:34
Mikhail Kholodkov
6,9478 gold badges33 silver badges59 bronze badges
6,9478 gold badges33 silver badges59 bronze badges
asked Jul 19 at 14:46
Olaf KockOlaf Kock
38.1k7 gold badges46 silver badges79 bronze badges
38.1k7 gold badges46 silver badges79 bronze badges
1
It will always be running on a JRE.
– mwarren
Jul 19 at 14:47
1
The JDK supplies the tools to build a Java application and has a JRE included to run applications on. A JRE installation just has the JRE and no build tools.
– mwarren
Jul 19 at 14:50
2
Consider the keywords: a "kit" is something that you use; an "environment" is something that you live in. You make something in the kit and then run it in the environment.
– zero298
Jul 19 at 14:53
4
Since Java has become modular, the distinction between JRE and JDK is obsolete. You have to clarify which feature you need and then, check for the presence of that feature. If it is the compiler, you can check for the presence of the compiler API. But if you don’t use that API but require the presence of a command linejavac
tool, you have to check for precisely that.
– Holger
Jul 19 at 14:57
2
So you’re saying, the problem is that Liferay has certain requirements on the environment, but doesn’t provide a user friendly error message? Then, you should file a bug report to Liferay’s developers and that’s it.
– Holger
Jul 19 at 15:03
|
show 12 more comments
1
It will always be running on a JRE.
– mwarren
Jul 19 at 14:47
1
The JDK supplies the tools to build a Java application and has a JRE included to run applications on. A JRE installation just has the JRE and no build tools.
– mwarren
Jul 19 at 14:50
2
Consider the keywords: a "kit" is something that you use; an "environment" is something that you live in. You make something in the kit and then run it in the environment.
– zero298
Jul 19 at 14:53
4
Since Java has become modular, the distinction between JRE and JDK is obsolete. You have to clarify which feature you need and then, check for the presence of that feature. If it is the compiler, you can check for the presence of the compiler API. But if you don’t use that API but require the presence of a command linejavac
tool, you have to check for precisely that.
– Holger
Jul 19 at 14:57
2
So you’re saying, the problem is that Liferay has certain requirements on the environment, but doesn’t provide a user friendly error message? Then, you should file a bug report to Liferay’s developers and that’s it.
– Holger
Jul 19 at 15:03
1
1
It will always be running on a JRE.
– mwarren
Jul 19 at 14:47
It will always be running on a JRE.
– mwarren
Jul 19 at 14:47
1
1
The JDK supplies the tools to build a Java application and has a JRE included to run applications on. A JRE installation just has the JRE and no build tools.
– mwarren
Jul 19 at 14:50
The JDK supplies the tools to build a Java application and has a JRE included to run applications on. A JRE installation just has the JRE and no build tools.
– mwarren
Jul 19 at 14:50
2
2
Consider the keywords: a "kit" is something that you use; an "environment" is something that you live in. You make something in the kit and then run it in the environment.
– zero298
Jul 19 at 14:53
Consider the keywords: a "kit" is something that you use; an "environment" is something that you live in. You make something in the kit and then run it in the environment.
– zero298
Jul 19 at 14:53
4
4
Since Java has become modular, the distinction between JRE and JDK is obsolete. You have to clarify which feature you need and then, check for the presence of that feature. If it is the compiler, you can check for the presence of the compiler API. But if you don’t use that API but require the presence of a command line
javac
tool, you have to check for precisely that.– Holger
Jul 19 at 14:57
Since Java has become modular, the distinction between JRE and JDK is obsolete. You have to clarify which feature you need and then, check for the presence of that feature. If it is the compiler, you can check for the presence of the compiler API. But if you don’t use that API but require the presence of a command line
javac
tool, you have to check for precisely that.– Holger
Jul 19 at 14:57
2
2
So you’re saying, the problem is that Liferay has certain requirements on the environment, but doesn’t provide a user friendly error message? Then, you should file a bug report to Liferay’s developers and that’s it.
– Holger
Jul 19 at 15:03
So you’re saying, the problem is that Liferay has certain requirements on the environment, but doesn’t provide a user friendly error message? Then, you should file a bug report to Liferay’s developers and that’s it.
– Holger
Jul 19 at 15:03
|
show 12 more comments
2 Answers
2
active
oldest
votes
javax.tools.ToolProvider.getSystemJavaCompiler()
will return null
if no compiler is available, and a JavaCompiler
if it is.
Technically it just tells you if the compiler is available of course, but that in most scenarios will imply the existence of the JDK.
1
Ah, that might be even better than my answer.
– Stefan Reich
Jul 19 at 15:09
1
Awesome, thanks. That looks like it's also working in OpenJDKs, as they might not necessarily duplicate com.sun.*
– Olaf Kock
Jul 19 at 15:09
3
Of course, that won’t tell you whether a command linejavac
command exists nor whether a software, naively assuming to run in ajre
directy inside ajdk
installation (which is not the case since Java 9), will work with the current environment.
– Holger
Jul 19 at 15:13
1
@Holger: Good enough for a quickfix to the current pain. In the long run, your comment is right: Bring a friendlier message into the core product. But that's the long run, and I'm rather impatient.
– Olaf Kock
Jul 19 at 15:15
add a comment |
Class.forName("com.sun.tools.javac.Main");
If there is no exception, it is a JDK.
It works with current JDKs, but it's probably not part of any official spec.
Thanks - as you write in Michael's answer, and see in my comment there, I'll probably rather go with his, assuming it's working in any JDK, not just Oracle's.
– Olaf Kock
Jul 19 at 15:10
4
@OlafKock No problem. I will cry only shortly. :-)
– Stefan Reich
Jul 19 at 15:12
add a comment |
Your Answer
StackExchange.ifUsing("editor", function ()
StackExchange.using("externalEditor", function ()
StackExchange.using("snippets", function ()
StackExchange.snippets.init();
);
);
, "code-snippets");
StackExchange.ready(function()
var channelOptions =
tags: "".split(" "),
id: "1"
;
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function()
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled)
StackExchange.using("snippets", function()
createEditor();
);
else
createEditor();
);
function createEditor()
StackExchange.prepareEditor(
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader:
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
,
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
);
);
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f57114846%2fhow-to-tell-if-jdk-is-available-from-within-running-jvm%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
javax.tools.ToolProvider.getSystemJavaCompiler()
will return null
if no compiler is available, and a JavaCompiler
if it is.
Technically it just tells you if the compiler is available of course, but that in most scenarios will imply the existence of the JDK.
1
Ah, that might be even better than my answer.
– Stefan Reich
Jul 19 at 15:09
1
Awesome, thanks. That looks like it's also working in OpenJDKs, as they might not necessarily duplicate com.sun.*
– Olaf Kock
Jul 19 at 15:09
3
Of course, that won’t tell you whether a command linejavac
command exists nor whether a software, naively assuming to run in ajre
directy inside ajdk
installation (which is not the case since Java 9), will work with the current environment.
– Holger
Jul 19 at 15:13
1
@Holger: Good enough for a quickfix to the current pain. In the long run, your comment is right: Bring a friendlier message into the core product. But that's the long run, and I'm rather impatient.
– Olaf Kock
Jul 19 at 15:15
add a comment |
javax.tools.ToolProvider.getSystemJavaCompiler()
will return null
if no compiler is available, and a JavaCompiler
if it is.
Technically it just tells you if the compiler is available of course, but that in most scenarios will imply the existence of the JDK.
1
Ah, that might be even better than my answer.
– Stefan Reich
Jul 19 at 15:09
1
Awesome, thanks. That looks like it's also working in OpenJDKs, as they might not necessarily duplicate com.sun.*
– Olaf Kock
Jul 19 at 15:09
3
Of course, that won’t tell you whether a command linejavac
command exists nor whether a software, naively assuming to run in ajre
directy inside ajdk
installation (which is not the case since Java 9), will work with the current environment.
– Holger
Jul 19 at 15:13
1
@Holger: Good enough for a quickfix to the current pain. In the long run, your comment is right: Bring a friendlier message into the core product. But that's the long run, and I'm rather impatient.
– Olaf Kock
Jul 19 at 15:15
add a comment |
javax.tools.ToolProvider.getSystemJavaCompiler()
will return null
if no compiler is available, and a JavaCompiler
if it is.
Technically it just tells you if the compiler is available of course, but that in most scenarios will imply the existence of the JDK.
javax.tools.ToolProvider.getSystemJavaCompiler()
will return null
if no compiler is available, and a JavaCompiler
if it is.
Technically it just tells you if the compiler is available of course, but that in most scenarios will imply the existence of the JDK.
answered Jul 19 at 15:07
Michael BerryMichael Berry
46.2k17 gold badges116 silver badges173 bronze badges
46.2k17 gold badges116 silver badges173 bronze badges
1
Ah, that might be even better than my answer.
– Stefan Reich
Jul 19 at 15:09
1
Awesome, thanks. That looks like it's also working in OpenJDKs, as they might not necessarily duplicate com.sun.*
– Olaf Kock
Jul 19 at 15:09
3
Of course, that won’t tell you whether a command linejavac
command exists nor whether a software, naively assuming to run in ajre
directy inside ajdk
installation (which is not the case since Java 9), will work with the current environment.
– Holger
Jul 19 at 15:13
1
@Holger: Good enough for a quickfix to the current pain. In the long run, your comment is right: Bring a friendlier message into the core product. But that's the long run, and I'm rather impatient.
– Olaf Kock
Jul 19 at 15:15
add a comment |
1
Ah, that might be even better than my answer.
– Stefan Reich
Jul 19 at 15:09
1
Awesome, thanks. That looks like it's also working in OpenJDKs, as they might not necessarily duplicate com.sun.*
– Olaf Kock
Jul 19 at 15:09
3
Of course, that won’t tell you whether a command linejavac
command exists nor whether a software, naively assuming to run in ajre
directy inside ajdk
installation (which is not the case since Java 9), will work with the current environment.
– Holger
Jul 19 at 15:13
1
@Holger: Good enough for a quickfix to the current pain. In the long run, your comment is right: Bring a friendlier message into the core product. But that's the long run, and I'm rather impatient.
– Olaf Kock
Jul 19 at 15:15
1
1
Ah, that might be even better than my answer.
– Stefan Reich
Jul 19 at 15:09
Ah, that might be even better than my answer.
– Stefan Reich
Jul 19 at 15:09
1
1
Awesome, thanks. That looks like it's also working in OpenJDKs, as they might not necessarily duplicate com.sun.*
– Olaf Kock
Jul 19 at 15:09
Awesome, thanks. That looks like it's also working in OpenJDKs, as they might not necessarily duplicate com.sun.*
– Olaf Kock
Jul 19 at 15:09
3
3
Of course, that won’t tell you whether a command line
javac
command exists nor whether a software, naively assuming to run in a jre
directy inside a jdk
installation (which is not the case since Java 9), will work with the current environment.– Holger
Jul 19 at 15:13
Of course, that won’t tell you whether a command line
javac
command exists nor whether a software, naively assuming to run in a jre
directy inside a jdk
installation (which is not the case since Java 9), will work with the current environment.– Holger
Jul 19 at 15:13
1
1
@Holger: Good enough for a quickfix to the current pain. In the long run, your comment is right: Bring a friendlier message into the core product. But that's the long run, and I'm rather impatient.
– Olaf Kock
Jul 19 at 15:15
@Holger: Good enough for a quickfix to the current pain. In the long run, your comment is right: Bring a friendlier message into the core product. But that's the long run, and I'm rather impatient.
– Olaf Kock
Jul 19 at 15:15
add a comment |
Class.forName("com.sun.tools.javac.Main");
If there is no exception, it is a JDK.
It works with current JDKs, but it's probably not part of any official spec.
Thanks - as you write in Michael's answer, and see in my comment there, I'll probably rather go with his, assuming it's working in any JDK, not just Oracle's.
– Olaf Kock
Jul 19 at 15:10
4
@OlafKock No problem. I will cry only shortly. :-)
– Stefan Reich
Jul 19 at 15:12
add a comment |
Class.forName("com.sun.tools.javac.Main");
If there is no exception, it is a JDK.
It works with current JDKs, but it's probably not part of any official spec.
Thanks - as you write in Michael's answer, and see in my comment there, I'll probably rather go with his, assuming it's working in any JDK, not just Oracle's.
– Olaf Kock
Jul 19 at 15:10
4
@OlafKock No problem. I will cry only shortly. :-)
– Stefan Reich
Jul 19 at 15:12
add a comment |
Class.forName("com.sun.tools.javac.Main");
If there is no exception, it is a JDK.
It works with current JDKs, but it's probably not part of any official spec.
Class.forName("com.sun.tools.javac.Main");
If there is no exception, it is a JDK.
It works with current JDKs, but it's probably not part of any official spec.
answered Jul 19 at 15:07
Stefan ReichStefan Reich
5864 silver badges12 bronze badges
5864 silver badges12 bronze badges
Thanks - as you write in Michael's answer, and see in my comment there, I'll probably rather go with his, assuming it's working in any JDK, not just Oracle's.
– Olaf Kock
Jul 19 at 15:10
4
@OlafKock No problem. I will cry only shortly. :-)
– Stefan Reich
Jul 19 at 15:12
add a comment |
Thanks - as you write in Michael's answer, and see in my comment there, I'll probably rather go with his, assuming it's working in any JDK, not just Oracle's.
– Olaf Kock
Jul 19 at 15:10
4
@OlafKock No problem. I will cry only shortly. :-)
– Stefan Reich
Jul 19 at 15:12
Thanks - as you write in Michael's answer, and see in my comment there, I'll probably rather go with his, assuming it's working in any JDK, not just Oracle's.
– Olaf Kock
Jul 19 at 15:10
Thanks - as you write in Michael's answer, and see in my comment there, I'll probably rather go with his, assuming it's working in any JDK, not just Oracle's.
– Olaf Kock
Jul 19 at 15:10
4
4
@OlafKock No problem. I will cry only shortly. :-)
– Stefan Reich
Jul 19 at 15:12
@OlafKock No problem. I will cry only shortly. :-)
– Stefan Reich
Jul 19 at 15:12
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function ()
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f57114846%2fhow-to-tell-if-jdk-is-available-from-within-running-jvm%23new-answer', 'question_page');
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function ()
StackExchange.helpers.onClickDraftSave('#login-link');
);
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
It will always be running on a JRE.
– mwarren
Jul 19 at 14:47
1
The JDK supplies the tools to build a Java application and has a JRE included to run applications on. A JRE installation just has the JRE and no build tools.
– mwarren
Jul 19 at 14:50
2
Consider the keywords: a "kit" is something that you use; an "environment" is something that you live in. You make something in the kit and then run it in the environment.
– zero298
Jul 19 at 14:53
4
Since Java has become modular, the distinction between JRE and JDK is obsolete. You have to clarify which feature you need and then, check for the presence of that feature. If it is the compiler, you can check for the presence of the compiler API. But if you don’t use that API but require the presence of a command line
javac
tool, you have to check for precisely that.– Holger
Jul 19 at 14:57
2
So you’re saying, the problem is that Liferay has certain requirements on the environment, but doesn’t provide a user friendly error message? Then, you should file a bug report to Liferay’s developers and that’s it.
– Holger
Jul 19 at 15:03