今天中午因为台风我把电脑电源插头拔了,随后下午我接通电源再次玩我的世界,结果游戏都打不开了,重装显卡驱动无效
以下为我的世界1.8.9pcl2启动器的错误报告:
// My bad.
Time: 23-7-28 下午7:37
Description: Initializing game
org.lwjgl.LWJGLException: Pixel format not accelerated
at org.lwjgl.opengl.WindowsPeerInfo.nChoosePixelFormat(Native Method)
at org.lwjgl.opengl.WindowsPeerInfo.choosePixelFormat(WindowsPeerInfo.java:52)
at org.lwjgl.opengl.WindowsDisplay.createWindow(WindowsDisplay.java:247)
at org.lwjgl.opengl.Display.createWindow(Display.java:306)
at org.lwjgl.opengl.Display.create(Display.java:848)
at org.lwjgl.opengl.Display.create(Display.java:757)
at org.lwjgl.opengl.Display.create(Display.java:739)
at net.minecraft.client.Minecraft.func_175609_am(Minecraft.java:580)
at net.minecraft.client.Minecraft.func_71384_a(Minecraft.java:408)
at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:329)
at net.minecraft.client.main.Main.main(SourceFile:124)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at oolloo.jlw.Wrapper.invokeMain(Wrapper.java:60)
at oolloo.jlw.Wrapper.main(Wrapper.java:53)
A detailed walkthrough of the error, its code path and all known details is as follows:
---------------------------------------------------------------------------------------
-- Head --
Stacktrace:
at org.lwjgl.opengl.WindowsPeerInfo.nChoosePixelFormat(Native Method)
at org.lwjgl.opengl.WindowsPeerInfo.choosePixelFormat(WindowsPeerInfo.java:52)
at org.lwjgl.opengl.WindowsDisplay.createWindow(WindowsDisplay.java:247)
at org.lwjgl.opengl.Display.createWindow(Display.java:306)
at org.lwjgl.opengl.Display.create(Display.java:848)
at org.lwjgl.opengl.Display.create(Display.java:757)
at org.lwjgl.opengl.Display.create(Display.java:739)
at net.minecraft.client.Minecraft.func_175609_am(Minecraft.java:580)
at net.minecraft.client.Minecraft.func_71384_a(Minecraft.java:408)
-- Initialization --
Details:
Stacktrace:
at net.minecraft.client.Minecraft.func_99999_d(Minecraft.java:329)
at net.minecraft.client.main.Main.main(SourceFile:124)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at net.minecraft.launchwrapper.Launch.launch(Launch.java:135)
at net.minecraft.launchwrapper.Launch.main(Launch.java:28)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at oolloo.jlw.Wrapper.invokeMain(Wrapper.java:60)
at oolloo.jlw.Wrapper.main(Wrapper.java:53)
-- System Details --
Details:
Minecraft Version: 1.8.9
Operating System: Windows 10 (amd64) version 10.0
Java Version: 1.8.0_332, Temurin
Java VM Version: OpenJDK 64-Bit Server VM (mixed mode), Temurin
Memory: 230686720 bytes (220 MB) / 372244480 bytes (355 MB) up to 7086276608 bytes (6758 MB)
JVM Flags: 6 total; -XX:+UseG1GC -XX:-UseAdaptiveSizePolicy -XX:-OmitStackTraceInFastThrow -XX:HeapDumpPath=MojangTricksIntelDriversForPerformance_javaw.exe_minecraft.exe.heapdump -Xmn256m -Xmx6758m
IntCache: cache: 0, tcache: 0, allocated: 0, tallocated: 0
FML:
Loaded coremods (and transformers):
Launched Version: 1.8.9
LWJGL: 2.9.4
OpenGL: ~~ERROR~~ RuntimeException: No OpenGL context found in the current thread.
GL Caps:
Using VBOs: Yes
Is Modded: Definitely; Client brand changed to 'fml,forge'
Type: Client (map_client.txt)
Resource Packs: 小呆呆y冠军材质+专属配音.zip
Current Language: ~~ERROR~~ NullPointerException: null
Profiler Position: N/A (disabled)
CPU: <unknown>
不知道你这个问题是否已经解决, 如果还没有解决的话:利用对spring的支持,在spring ioc完成启动时,扫描全部的bean,将bean的实例对象、具体方法、方法入参、返回值,以及方法标注的serviceCode具体值进行存储,等待远程客户端发出请求,并反射执行此方法
package net.jlxxw.apicenter.facade.scanner;
import net.jlxxw.apicenter.facade.annotation.RemoteRegister;
import org.apache.commons.lang.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.aop.support.AopUtils;
import org.springframework.core.LocalVariableTableParameterNameDiscoverer;
import org.springframework.stereotype.Component;
import java.lang.reflect.Method;
import java.util.Map;
import java.util.Objects;
import java.util.concurrent.ConcurrentHashMap;
/**
* 方法扫描
* @author zhanxiumei
*/
@Component
public class MethodScanner {
private static final Logger logger = LoggerFactory.getLogger(MethodScanner.class);
/**
* 方法本地注册表
*/
private static final Map<String,MethodInfo> REGISTRY_TABLE = new ConcurrentHashMap<>(16);
/**
* 将扫描到到方法注册到注册表中
* @param object 实例对象
* @param method 调用的方法
* @param serviceCode 方法唯一识别码
* @param parameterTypes 方法参数类型列表
* @param hasReturn 是否具有返回值
*/
private void registry(Object object, Method method,String serviceCode,Class[] parameterTypes,boolean hasReturn,String[] methodParamNames){
MethodInfo methodInfo = new MethodInfo();
methodInfo.setParameterTypes(parameterTypes);
methodInfo.setMethod(method);
methodInfo.setObject(object);
methodInfo.setHasReturn(hasReturn);
methodInfo.setMethodParamNames(methodParamNames);
REGISTRY_TABLE.put(serviceCode,methodInfo);
logger.info("registry method "+method);
}
/**
* 扫描方法,并检测是否合规
* @param bean spring bean
*/
public void scanMethod(Object bean){
Class clazz;
if(AopUtils.isAopProxy(bean)){
clazz = AopUtils.getTargetClass(bean);
}else{
clazz = bean.getClass();
}
// 获取全部声明的方法
Method[] declaredMethods = clazz.getDeclaredMethods();
if(Objects.nonNull(declaredMethods)){
for (Method declaredMethod : declaredMethods) {
// 如果方法包含指定的注解,则进行相关解析
if(declaredMethod.isAnnotationPresent(RemoteRegister.class)){
RemoteRegister annotation = declaredMethod.getAnnotation(RemoteRegister.class);
String serviceCode = annotation.serviceCode();
if(StringUtils.isBlank(serviceCode)){
// 注解中的 buc code 不能为空
throw new IllegalArgumentException("method:" + declaredMethod +" serviceCode is not null");
}
if(REGISTRY_TABLE.containsKey(serviceCode)){
// 注解中的 buc code 不能重复
MethodInfo methodInfo = REGISTRY_TABLE.get(serviceCode);
throw new IllegalArgumentException("method:" + declaredMethod + " serviceCode exists,please check "+methodInfo.getMethod().getName());
}
// 获取返回值类型
Class<?> returnType = declaredMethod.getReturnType();
// 获取参数列表
Class<?>[] parameterTypes = declaredMethod.getParameterTypes();
if(parameterTypes.length >0){
for (Class<?> parameterType : parameterTypes) {
if(parameterType.isArray() || parameterType.isEnum()){
throw new IllegalArgumentException("method: "+declaredMethod + "param is not support,not support type:array,enum");
}
}
}
// 获取全部方法参数名称
LocalVariableTableParameterNameDiscoverer localVariableTableParameterNameDiscoverer = new LocalVariableTableParameterNameDiscoverer();
String[] parameterNames = localVariableTableParameterNameDiscoverer.getParameterNames(declaredMethod);
registry(bean,declaredMethod,serviceCode,parameterTypes,"void".equals(returnType.getName()),parameterNames);
}
}
}
}
/**
* 根据方法注解编码,获取相关执行的方法
* @param serviceCode
* @return
*/
public MethodInfo getMethod(String serviceCode){
return REGISTRY_TABLE.get(serviceCode);
}
}