我正在使用GlassFish在IntelliJ中执行一个项目,它会抛出此错误:
GlassFish需要Java SE版本6.您的JDK版本为0.
我在终端中运行glassfish4/bin/asadmin start-domain
命令,但仍然遇到同样的错误。
我安装了Java SE,SDK版本为8u152(我在Java Panel上查看过)。另外,我不知道为什么它会搜索jdk 9。
答案 0 :(得分:1)
我尝试了所有这些方法,但没有一个对我有用。
所有答案都涉及到转到文件夹 private readonly SignInManager<IdentityUser> _signInManager;
public YourController(
...,
SignInManager<IdentityUser> signInManager)
{
...
_signInManager = signInManager;
}
public async Task<IActionResult> YourMethod() // <-NOTE IT IS ASYNC
{
var user = _userManager.FindByNameAsync(User.Identity.Name).Result;
var claimToUse = ClaimsHelpers.CreateClaim(ClaimTypes.ActiveCompany, JsonConvert.SerializeObject(cc));
var claimToRemove = _userManager.GetClaimsAsync(user).Result
.FirstOrDefault(x => x.Type == ClaimTypes.ActiveCompany.ToString());
if (claimToRemove != null)
{
var result = _userManager.ReplaceClaimAsync(user, claimToRemove, claimToUse).Result;
await _signInManager.RefreshSignInAsync(user); //<--- THIS
}
else ...
,然后编辑PATH_TO_YOUR_GLASSFISH/glassfish/config
。
编辑该文件没有任何效果。
我确实进入了该文件夹,但最终编辑了asenv.conf
。
我从字面上将其添加到末尾:asenv.bat
通用指令为:set AS_JAVA=../../../../Program Files/Java/jdk1.8.0_261
请注意:set AS_JAVA=PATH_TO_YOUR_JDK
文件的值两边带有引号,asenv.conf
没有。
我终于从这个问题中找到了答案:
答案 1 :(得分:0)
在我的情况下,问题与IntelliJ设置完全无关,JAVA_HOME
指向正确的路径(版本1.8)。
尽管如此,实际上使用了java版本9的运行时,因此我卸载了JRE 9。 离开JDK9,因为删除运行时就足以作为快速修复。
答案 2 :(得分:0)
对我来说,java home很不错,唯一的问题是版本不匹配。
打开“ glassfish->配置-> asenv.conf”。 添加行AS_JAVA = PATH_TO_YOUR_JDK_DIRECTORY
唯一需要记住的是AS_JAVA = PATH_TO_YOUR_JDK_DIRECTORY 应该与您在intellij中提到的jdk版本完全匹配。
现在->
在IntelliJ ...文件-> SDK的中提到C:\ Program Files \ Java \ jdk1.8.0_40 glassfish-> config-> asenv.conf
中提到了设置AS_JAVA = C:\ Program Files \ Java \ jdk1.8.0_40答案 3 :(得分:0)
我请在asenv.conf
文件夹中打开PATH_TO_YOUR_GLASSFISH/glassfish/config
,转到行尾并添加set AS_JAVA=/PATH_TO_YOUR_JAVA/Java/JavaVirtualMachines/jdk-YOUR-VERSION.jdk