IDEA 怎么禁用一个类或者一个包

博客分类: 由于定义了以java开始的包(java.mypackage),编译时错误: java.lang.SecurityException: Prohibited package name: java.mypackage at java.lang.ClassLoader.preDefineClass(ClassLoader.java:479) at java.lang.ClassLoader.defineClass(ClassLoader.java:614) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124) at java.net.URLClassLoader.defineClass(URLClassLoader.java:260) at java.net.URLClassLoader.access$000(URLClassLoader.java:56) at java.net.URLClassLoader$1.run(URLClassLoader.java:195) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276) at java.lang.ClassLoader.loadClass(ClassLoader.java:251) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319) Exception in thread "main" 根据异常信息,定位到java.lang.ClassLoader.preDefineClass进行排查,发现以下代码片断: /* Determine protection domain, and check that: - not define java.* class, - signer of this class matches signers for the rest of the classes in package. private ProtectionDomain preDefineClass(String name, ProtectionDomain protectionDomain) if (!checkName(name)) throw new NoClassDefFoundError("IllegalName: " + name); if ((name != null) && [color=red]name.startsWith("java.")[/color]) { throw new SecurityException("Prohibited package name: " + name.substring(0, name.lastIndexOf('.'))); if (protectionDomain == null) { protectionDomain = getDefaultDomain(); if (name != null) checkCerts(name, protectionDomain.getCodeSource()); return protectionD // true if the name is null or has the potential to be a valid binary name private boolean checkName(String name) { if ((name == null) || (name.length() == 0)) if ((name.indexOf('/') != -1) || (!VM.allowArraySyntax() && (name.charAt(0) == '['))) 可以看出preDefineClass方法首先对类名进行了检查,发现以java作为一级包名,则抛出安全异常:禁止使用的包名! 这条安全异常是由Java类加载的“双亲委派模型”(详见)所导致的。在双亲委派模型中,由父加载类加载的类,下层加载器是不能加载的。本例中最高层加载器BootstrapClassLoader加载了classpath路径下所定义的java.*包内的类,而java.research包就不能由BootstrapClassLoader的下层加载器AppClassLoader加载了。这也是java安全机制中对于恶意代码所采取的防护措施。 浏览 27828 浏览: 154286 次 来自: 成都 我想问一下,为什么插入CLOB字段的时候要先插入空CLOB,e ... 狂赞楼主! 16:09:14 org.apache.c ... 那怎么解决这种问题呢? 看看 看看 看看 看看 (window.slotbydup=window.slotbydup || []).push({ id: '4773203', container: s, size: '200,200', display: 'inlay-fix'1.方法如图: 2.如下图: intellij idea取消重复代码提醒的功能 操作步骤: File -& Setting -& Inspections -& General -& Duplicated Code 设置为不打勾√即可。... Intellij IDEA 取消重复代码提示 idea find duplicated code 关闭idea的 duplicated code 提示 利用idea开发的时候有重复代码提示非常不方便,并不是所有的代码都可以合并,如果想去掉可以在在setting里设置如下图 把Duplicated Code的√去掉就好了... Intellij IDEA duplicate code 提示如何关掉 有时候多个项目里写了相系的方法名称,或者是原的有项目的情况。但在IDEA 里老提示duplicate code, 那就很不爽了, 虽然提示是让大家明白需要重构代码,但是这往往又不是短时间内能做的。 所... IntelliJ IDEA 代码检查规范QAPlug 静态检查规范 Avoid Array Loops 数组之间的拷贝使用System.arrayCopy更加高效 byte[] ReceiveBytes = new byte[length1+ le... 本身是一个不错的功能,为了减少一定量的重复代码,提醒开发人员注意,但是如果有时几行代码的重复没必要扔到一个统一的地方处理,这是总是提醒,干扰视线。这里根据个人习惯,还是关闭这个功能比较好。... Intellij IDEA 取消重复代码提示 1.打开idea的setting选项2.选择inspections栏目3.选择General选项,将duplicated code后面的勾给它去掉就OK了... File-&Setting-&Edit-&Inspections:将圈中Duplicate Code勾选取消即可。 IntelliJ idea 2017 卸载 没有更多推荐了,扣丁学堂Java开发之Springboot在IDEA热部署配置方法详解 今天扣丁学堂Java培训老师给大家主要介绍一下关于Springboot在IDEA热部署的配置方法,以及IntellijIDEA4种配置热部署的方法,下面我们一起来看一下吧。 1、pom.xml文件 注:热部署功能spring-boot-1.3开始有的 &!--添加依赖--& &dependency& &groupId&org.springframework.boot&/groupId& &artifactId&spring-boot-devtools&/artifactId& &!--optional=true,依赖不会传递,该项目依赖devtools;之后依赖myboot项目的项目如果想要使用devtools,需要重新引入--& &optional&true&/optional& &/dependency& 注:project中添加spring-boot-maven-plugin,主要在eclipse中使用,idea中不需要添加此配置。 &groupId&org.springframework.boot&/groupId& &artifactId&spring-boot-maven-plugin&/artifactId& &configuration& &fork&true&/fork& &/configuration& &/plugins& 2、更改idea配置 1)“File”-&“Settings”-&“Build,Execution,Deplyment”-&“Compiler”,选中打勾“Buildprojectautomatically”。 2)组合键:“Shift+Ctrl+Alt+/”,选择“Registry”,选中打勾“compiler.automake.allow.when.app.running”。 3Chrome禁用缓存 F12或者“Ctrl+Shift+I”,打开开发者工具,“Network”选项卡下选中打勾“DisableCache(whileDevToolsisopen)” IntellijIDEA4种配置热部署的方法 热部署可以使的修改代码后,无须重启服务器,就可以加载更改的代码。 第1种:修改服务器配置,使得IDEA窗口失去焦点时,更新类和资源 菜单Run-&EditConfiguration,然后配置指定服务器下,右侧server标签下onframedeactivation=Updateclassesandresource。 优点:简单 缺点:基于JVM提供的热加载仅支持方法块内代码修改,只有debug模式下,并且是在idea失去焦点时才会出发热加载,相对加载速度缓慢 第2种:使用springloadedjar包 a.下载jar包,github:https://github.com/spring-projects/spring-loaded b.启动应用时添加VM启动参数:-javaagent:/home/lkqm/.m2/repository/org/springframework/springloaded/1.2.7.RELEASE/springloaded-1.2.7.RELEASE.jar-noverify 优点:对Spring系列框架支持好(不含Springboot),支持成员级别的修改(增删改方法、字段、注解),支持对枚举值集。 缺点:与优点相对 第3种:使用spring-boot-devtools提供的开发者工具 spring-boot项目中引入如下依赖 &dependency& &groupId&org.springframework.boot&/groupId& &artifactId&spring-boot-devtools&/artifactId& &/dependency& 优点:简单,支持Spring-boot项目,支持成员级别的修改热部署。 缺点:只支持spring-boot项目。 第4种:使用Jrebel插件实现热部署(该插件14天免费试用) 在线安装:菜单File-&Setting-&Plugin,点击右侧底部Browserepositories,弹出框顶部输入:JRebleforIntellij,选中安装即可。 优点:强大,对各类框架支持,并且提供IDE插件的方式。 最后3种方法是基于类加载机制来实现热加载的,因此你修改完成代码后必须重新编译当前代码,才能触发热部署,Eclipse默认就支持了自动编译,而在IntellijIDEA中默认是关闭了自动编译的,可以按照如下2步设置开启: IDEA开启项目自动编译,进入设置,Build,Execut,Deployment-&Compiler勾选中左侧的BuildProjectautomatically IDEA开启项目运行时自动make,ctrl+shift+a搜索命令:registry-&勾选compiler.automake.allow.when.app.running 以上就是关于Java开发培训之Springboot在IDEA热部署的配置方法,希望对大家有所帮助。 责任编辑: 声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。 扣丁学堂专注于IT教育视频教程学习,汇总了时下全新的IT领域技术 扣丁学堂时刻更新全新的IT领域技术学习路线图 今日搜狐热点

我要回帖

更多关于 养森瘦瘦包反弹好快 的文章

 

随机推荐