精华内容
下载资源
问答
  • java常见运行错误

    千次阅读 2016-04-10 09:48:35
    java常见运行错误 java常见运行时异常 1.算术异常类:ArithmeticExecption  2.  3.空指针异常类:NullPointerException  4.  5.类型强制转换异常:ClassCastException  6.  7.数组...

    java常见运行时错误


    java常见运行时异常

    1.算术异常类:ArithmeticExecption  

    2. 

    3.空指针异常类:NullPointerException  

    4. 

    5.类型强制转换异常:ClassCastException  

    6. 

    7.数组负下标异常:NegativeArrayException  

    8. 

    9.数组下标越界异常:ArrayIndexOutOfBoundsException  

    10. 

    11.违背安全原则异常:SecturityException  

    12. 

    13.文件已结束异常:EOFException  

    14. 

    15.文件未找到异常:FileNotFoundException  

    16. 

    17.字符串转换为数字异常:NumberFormatException  

    18. 

    19. 

    20.操作数据库异常:SQLException  

    21. 

    22. 

    23.输入输出异常:IOException  

    24. 

    25. 

    26.方法未找到异常:NoSuchMethodException  

    27. 

    28. 

    29.1. java.lang.nullpointerexception  

    30.  这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用了未经初始化的对象或者是不存在的对象,这个错误经常出现在创建图片,调用数组这些操作中,比如图片未经初始化,或者图片创建时的路径错误等等。对数组操作中出现空指针,很多情况下是一些刚开始学习编程的朋友常犯的错误,即把数组的初始化和数组元素的初始化混淆起来了。数组的初始化是对数组分配需要的空间,而初始化后的数组,其中的元素并没有实例化,依然是空的,所以还需要对每个元素都进行初始化(如果要调用的话)  

    31. 

    32.  2. java.lang.classnotfoundexception  

    33.  这个异常是很多原本在jb等开发环境中开发的程序员,把 jb下的程序包放在wtk下编译经常出现的问题,异常的解释是"指定的类不存在",这里主要考虑一下类的名称和路径是否正确即可,如果是在jb下做的程序包,一般都是默认加上package的,所以转到wtk下后要注意把package的路径加上。  

    34. 

    35.  3. java.lang.arithmeticexception  

    36.  这个异常的解释是"数学运算异常",比如程序中出现了除以零这样的运算就会出这样的异常,对这种异常,大家就要好好检查一下自己程序中涉及到数学运算的地方,公式是不是有不妥了。  

    37. 

    38.  4. java.lang.arrayindexoutofboundsexception  

    39.  这个异常相信很多朋友也经常遇到过,异常的解释是"数组下标越界",现在程序中大多都有对数组的操作,因此在调用数组的时候一定要认真检查,看自己调用的下标是不是超出了数组的范围,一般来说,显示(即直接用常数当下标)调用不太容易出这样的错,但隐式(即用变量表示下标)调用就经常出错了,还有一种情况,是程序中定义的数组的长度是通过某些特定方法决定的,不是事先声明的,这个时候,最好先查看一下数组的length,以免出现这个异常。  

    40. 

    41.  5. java.lang.illegalargumentexception  

    42.  这个异常的解释是"方法的参数错误",很多j2me的类库中的方法在一些情况下都会引发这样的错误,比如音量调节方法中的音量参数如果写成负数就会出现这个异常,再比如g.setcolor(int red,int green,int blue)这个方法中的三个值,如果有超过255的也会出现这个异常,因此一旦发现这个异常,我们要做的,就是赶紧去检查一下方法调用中的参数传递是不是出现了错误。  

    43. 

    44.  6. java.lang.illegalaccessexception  

    45.  这个异常的解释是"没有访问权限",当应用程序要调用一个类,但当前的方法即没有对该类的访问权限便会出现这个异常。对程序中用了package的情况下要注意这个异常。  

    46. 

    47.  其他还有很多异常,我就不一一列举了,我要说明的是,一个合格的程序员,需要对程序中常见的问题有相当的了解和相应的解决办法,否则仅仅停留在写程序而不会改程序的话,会极大影响到自己的开发的。关于异常的全部说明,在api里都可以查阅。  

    48. 

    49.   

    50. 

    51. 

    52.java.lang.AbstractMethodError  

    53. 

    54.抽象方法错误。当应用试图调用抽象方法时抛出。  

    55. 

    56.java.lang.AssertionError  

    57. 

    58.断言错。用来指示一个断言失败的情况。  

    59. 

    60.java.lang.ClassCircularityError  

    61. 

    62.类循环依赖错误。在初始化一个类时,若检测到类之间循环依赖则抛出该异常。  

    63. 

    64.java.lang.ClassFormatError  

    65. 

    66.类格式错误。当Java虚拟机试图从一个文件中读取Java类,而检测到该文件的内容不符合类的有效格式时抛出。  

    67. 

    68.java.lang.Error  

    69. 

    70.错误。是所有错误的基类,用于标识严重的程序运行问题。这些问题通常描述一些不应被应用程序捕获的反常情况。  

    71. 

    72. 

    73. 

    74.原因:    

    75.1.对系统所访问外部资源,未执行关闭操作,导致外部资源大量浪费,最终可能导致系统无法正常运行;     

    76.2.对系统所访问的外部资源关闭次数太多,外部系统无法正常处理;     

    77.3.系统访问的外部资源出现异常情况。     

    78.解决方案:    

    79.1.访问外部资源前,首先检查该资源(如数据库)是否可正常连接或操作。     

    80.2.访问外部资源时,如果进行了连接,一定进行关闭操作,并仅进行一次关闭操作。     

    81.3.尽量在同一操作中共享外部资源,以减少该操作对资源的消费,提高程序的执行效率  

    82.java.lang.ExceptionInInitializerError  

    83. 

    84.初始化程序错误。当执行一个类的静态初始化程序的过程中,发生了异常时抛出。静态初始化程序是指直接包含于类中的static语句段。  

    85. 

    86.java.lang.IllegalAccessError  

    87. 

    88.违法访问错误。当一个应用试图访问、修改某个类的域(Field)或者调用其方法,但是又违反域或方法的可见性声明,则抛出该异常。  

    89. 

    90.java.lang.IncompatibleClassChangeError  

    91. 

    92.不兼容的类变化错误。当正在执行的方法所依赖的类定义发生了不兼容的改变时,抛出该异常。一般在修改了应用中的某些类的声明定义而没有对整个应用重新编译而直接运行的情况下,容易引发该错误。  

    93. 

    94.java.lang.InstantiationError  

    95. 

    96.实例化错误。当一个应用试图通过Java的new操作符构造一个抽象类或者接口时抛出该异常.  

    97. 

    98.java.lang.InternalError  

    99. 

    100.内部错误。用于指示Java虚拟机发生了内部错误。  

    101. 

    102.java.lang.LinkageError  

    103. 

    104.链接错误。该错误及其所有子类指示某个类依赖于另外一些类,在该类编译之后,被依赖的类改变了其类定义而没有重新编译所有的类,进而引发错误的情况。  

    105. 

    106.java.lang.NoClassDefFoundError  

    107. 

    108.未找到类定义错误。当Java虚拟机或者类装载器试图实例化某个类,而找不到该类的定义时抛出该错误。  

    109. 

    110.java.lang.NoSuchFieldError  

    111. 

    112.域不存在错误。当应用试图访问或者修改某类的某个域,而该类的定义中没有该域的定义时抛出该错误。  

    113. 

    114.java.lang.NoSuchMethodError  

    115. 

    116.方法不存在错误。当应用试图调用某类的某个方法,而该类的定义中没有该方法的定义时抛出该错误。  

    117. 

    118.java.lang.OutOfMemoryError  

    119. 

    120.内存不足错误。当可用内存不足以让Java虚拟机分配给一个对象时抛出该错误。  

    121. 

    122.java.lang.StackOverflowError  

    123. 

    124.堆栈溢出错误。当一个应用递归调用的层次太深而导致堆栈溢出时抛出该错误。  

    125. 

    126.java.lang.ThreadDeath  

    127. 

    128.线程结束。当调用Thread类的stop方法时抛出该错误,用于指示线程结束。  

    129. 

    130.java.lang.UnknownError  

    131. 

    132.未知错误。用于指示Java虚拟机发生了未知严重错误的情况。  

    133. 

    134.java.lang.UnsatisfiedLinkError  

    135. 

    136.未满足的链接错误。当Java虚拟机未找到某个类的声明为native方法的本机语言定义时抛出。  

    137. 

    138.java.lang.UnsupportedClassVersionError  

    139. 

    140.不支持的类版本错误。当Java虚拟机试图从读取某个类文件,但是发现该文件的主、次版本号不被当前Java虚拟机支持的时候,抛出该错误。  

    141. 

    142.java.lang.VerifyError  

    143. 

    144.验证错误。当验证器检测到某个类文件中存在内部不兼容或者安全问题时抛出该错误。  

    145. 

    146.java.lang.VirtualMachineError  

    147. 

    148.虚拟机错误。用于指示虚拟机被破坏或者继续执行操作所需的资源不足的情况。  

    149. 

    150. 

    151.java.lang.ArithmeticException  

    152. 

    153.算术条件异常。譬如:整数除零等。  

    154. 

    155.java.lang.ArrayIndexOutOfBoundsException  

    156. 

    157.数组索引越界异常。当对数组的索引值为负数或大于等于数组大小时抛出。  

    158. 

    159.java.lang.ArrayStoreException  

    160. 

    161.数组存储异常。当向数组中存放非数组声明类型对象时抛出。  

    162. 

    163.java.lang.ClassCastException  

    164. 

    165.类造型异常。假设有类A和B(A不是B的父类或子类),O是A的实例,那么当强制将O构造为类B的实例时抛出该异常。该异常经常被称为强制类型转换异常。  

    166. 

    167.java.lang.ClassNotFoundException  

    168. 

    169.找不到类异常。当应用试图根据字符串形式的类名构造类,而在遍历CLASSPAH之后找不到对应名称的class文件时,抛出该异常。  

    170. 

    171.java.lang.CloneNotSupportedException  

    172. 

    173.不支持克隆异常。当没有实现Cloneable接口或者不支持克隆方法时,调用其clone()方法则抛出该异常。  

    174. 

    175.java.lang.EnumConstantNotPresentException  

    176. 

    177.枚举常量不存在异常。当应用试图通过名称和枚举类型访问一个枚举对象,但该枚举对象并不包含常量时,抛出该异常。  

    178. 

    179.java.lang.Exception  

    180. 

    181.根异常。用以描述应用程序希望捕获的情况。  

    182. 

    183.java.lang.IllegalAccessException  

    184. 

    185.违法的访问异常。当应用试图通过反射方式创建某个类的实例、访问该类属性、调用该类方法,而当时又无法访问类的、属性的、方法的或构造方法的定义时抛出该异常。  

    186. 

    187.java.lang.IllegalMonitorStateException  

    188. 

    189.违法的监控状态异常。当某个线程试图等待一个自己并不拥有的对象(O)的监控器或者通知其他线程等待该对象(O)的监控器时,抛出该异常。  

    190. 

    191.java.lang.IllegalStateException  

    192. 

    193.违法的状态异常。当在Java环境和应用尚未处于某个方法的合法调用状态,而调用了该方法时,抛出该异常。  

    194. 

    195.java.lang.IllegalThreadStateException  

    196. 

    197.违法的线程状态异常。当县城尚未处于某个方法的合法调用状态,而调用了该方法时,抛出异常。  

    198. 

    199.java.lang.IndexOutOfBoundsException  

    200. 

    201.索引越界异常。当访问某个序列的索引值小于0或大于等于序列大小时,抛出该异常。  

    202. 

    203.java.lang.InstantiationException  

    204. 

    205.实例化异常。当试图通过newInstance()方法创建某个类的实例,而该类是一个抽象类或接口时,抛出该异常。  

    206. 

    207.java.lang.InterruptedException  

    208. 

    209.被中止异常。当某个线程处于长时间的等待、休眠或其他暂停状态,而此时其他的线程通过Thread的interrupt方法终止该线程时抛出该异常。  

    210. 

    211.java.lang.NegativeArraySizeException  

    212. 

    213.数组大小为负值异常。当使用负数大小值创建数组时抛出该异常。  

    214. 

    215.java.lang.NoSuchFieldException  

    216. 

    217.属性不存在异常。当访问某个类的不存在的属性时抛出该异常。  

    218. 

    219.java.lang.NoSuchMethodException  

    220. 

    221.方法不存在异常。当访问某个类的不存在的方法时抛出该异常。  

    222. 

    223.java.lang.NullPointerException  

    224. 

    225.空指针异常。当应用试图在要求使用对象的地方使用了null时,抛出该异常。譬如:调用null对象的实例方法、访问null对象的属性、计算null对象的长度、使用throw语句抛出null等等。  

    226. 

    227.java.lang.NumberFormatException  

    228. 

    229.数字格式异常。当试图将一个String转换为指定的数字类型,而该字符串确不满足数字类型要求的格式时,抛出该异常。  

    230. 

    231.java.lang.RuntimeException  

    232. 

    233.运行时异常。是所有Java虚拟机正常操作期间可以被抛出的异常的父类。  

    234. 

    235.java.lang.SecurityException  

    236. 

    237.安全异常。由安全管理器抛出,用于指示违反安全情况的异常。  

    238. 

    239.java.lang.StringIndexOutOfBoundsException  

    240. 

    241.字符串索引越界异常。当使用索引值访问某个字符串中的字符,而该索引值小于0或大于等于序列大小时,抛出该异常。  

    242. 

    243.java.lang.StringIndexOutOfBoundsException  

    244. 

    245.字符串越界错误 等字符串类相关错误   

    246.代码段4:    

    247.String s_all_power = "1010011";    

    248.String s_access_power = s_all_power.substring(3,4);    

    249.描述:    

    250.以上代码段功能的功能是获取字符串s_all_power中的第4个字符。    

    251.说明:    

    252.一般情况下,程序不会有问题,如果由于某种原因,s_all_power长度变短,程序就会抛出字符串错误。    

    253.解决方案:对字符串进行截取(substring, charAt)、转换为字节数组(getBytes),字符数组转换为字符串(valueOf)操作时,先对操作字符串对象的存在性(是否为空)及长度进行检查后,再进行操作。    

    254.改写得到:    

    255.String s_all_power = "1010011";    

    256.if (s_all_power.length>4)     

    257.String s_access_power = s_all_power.substring(3,4);   

    258. 

    259. 

    260. 

    261.java.lang.TypeNotPresentException  

    262. 

    263.类型不存在异常。当应用试图以某个类型名称的字符串表达方式访问该类型,但是根据给定的名称又找不到该类型是抛出该异常。该异常与 ClassNotFoundException的区别在于该异常是unchecked(不被检查)异常,而ClassNotFoundException 是checked(被检查)异常。  

    264. 

    265.java.lang.UnsupportedOperationException  

    266. 

    267.不支持的方法异常。指明请求的方法不被支持情况的异常。  

    268. 

    269.异常  

    270.javax.servlet.jsp.JspException: Cannot retrieve mapping for action /Login (/Login是你的action名字)    

    271. 

    272.可能原因  

    273.action没有再struts-config.xml 中定义,或没有找到匹配的action,例如在JSP文件中使用 <html:form action="Login.do".将表单提交给Login.do处理,如果出现上述异常,请查看struts-config.xml中的定义部分,有时可能是打错了字符或者是某些不符合规则,可以使用strutsconsole工具来检查。  

    274.-----------------------------------------  

    275.异常  

    276.org.apache.jasper.JasperException: Cannot retrieve definition for form bean null 

    277. 

    278.可能原因       

    279.        

    280.这个异常是因为Struts根据struts-config.xml中的mapping没有找到action期望的form bean。大部分的情况可能是因为在form-bean中设置的name属性和action中设置的name属性不匹配所致。换句话说,action和 form都应该各自有一个name属性,并且要精确匹配,包括大小写。这个错误当没有name属性和action关联时也会发生,如果没有在action 中指定name属性,那么就没有name属性和action相关联。当然当action制作某些控制时,譬如根据参数值跳转到相应的jsp页面,而不是处理表单数据,这是就不用name属性,这也是action的使用方法之一。  

    281.-----------------------------------------  

    282.异常  

    283.No action instance for path /xxxx could be created  

    284. 

    285.可能原因  

    286.特别提示:因为有很多中情况会导致这个错误的发生,所以推荐大家调高你的web服务器的日志/调试级别,这样可以从更多的信息中看到潜在的、在试图创建action类时发生的错误,这个action类你已经在struts-config.xml中设置了关联(即添加了< action>标签)。  

    287. 

    288.在struts-config.xml中通过action标签的class属性指定的action类不能被找到有很多种原因,例如:定位编译后的. class文件失败。Failure to place compiled .class file for the action in the classpath (在web开发中,class的的位置在r WEB-INF/classes,所以你的action class必须要在这个目录下。例如你的action类位于WEB-INF/classes/action/Login.class,那么在struts -config.xml中设置action的属性type时就是action.Login).  

    289.拼写错误,这个也时有发生,并且不易找到,特别注意第一个字母的大小写和包的名称。  

    290.-----------------------------------------  

    291.异常  

    292.javax.servlet.jsp.JspException: No getter method for property username of bean org.apache.struts.taglib.html.BEAN  

    293. 

    294.可能原因  

    295.没有位form bean中的某个变量定义getter 方法  

    296. 

    297.这个错误主要发生在表单提交的FormBean中,用struts标记<html:text property=”username”>时,在FormBean中必须有一个getUsername()方法。注意字母“U”。  

    298.-----------------------------------------  

    299.异常  

    300.java.lang.NoClassDefFoundError: org/apache/struts/action/ActionForm  

    301. 

    302.可能原因  

    303.这个错误主要发生在在classpath中找不到相应的Java .class文件。如果这个错误发生在web应用程序的运行时,主要是因为指定的class文件不在web server的classpath中(/WEB-INF/classes 和 /WEB-INF/lib)。在上面的错误中,原因是找不到ActionForm类。  

    304.-----------------------------------------  

    305.异常  

    306.javax.servlet.jsp.JspException: Exception creating bean of class org.apache.struts.action.ActionForm: {1}  

    307. 

    308.可能原因  

    309.Instantiating Struts-provided ActionForm class directly instead of instantiating a class derived off ActionForm. This mightoccur implicitly if you specify that a form-bean is this Struts ActionForm class rather than specifying a child of this classfor the form-bean.  

    310. 

    311.Not associating an ActionForm-descended class with an action can also lead to this error.  

    312.-----------------------------------------  

    313.异常  

    314.javax.servlet.jsp.JspException: Cannot find ActionMappings or ActionFormBeans collection  

    315. 

    316.可能原因  

    317.不是标识Struts actionServlet的<servlet>标记就是映射.do扩展名的<sevlet-mapping>标记或者两者都没有在web.xml中声明。  

    318. 

    319.在struts-config.xml中的打字或者拼写错误也可导致这个异常的发生。例如缺少一个标记的关闭符号/>。最好使用struts console工具检查一下。  

    320. 

    321.另外,load-on-startup必须在web.xml中声明,这要么是一个空标记,要么指定一个数值,这个数值用来表servlet运行的优先级,数值越大优先级越低。  

    322. 

    323.还有一个和使用load-on-startup有关的是使用Struts预编译JSP文件时也可能导致这个异常。  

    324.-----------------------------------------  

    325.异常  

    326.java.lang.NullPointerException at org.apache.struts.util.RequestUtils.forwardURL(RequestUtils.java:1223)  

    327. 

    328.可能原因  

    329.在struts-config.xml中的forward元素缺少path属性。例如应该是如下形式:  

    330.<forward name="userhome" path="/user/userhome.jsp"/>  

    331.-----------------------------------------  

    332.异常  

    333.javax.servlet.jsp.JspException: Cannot find bean org.apache.struts.taglib.html.BEAN in any scope  

    334. 

    335. 

    336.   

    337. 

    338.Probable Causes  

    339.试图在Struts的form标记外使用form的子元素。这常常发生在你在</html: form>后面使用Struts的html标记。另外要注意可能你不经意使用的无主体的标记,如<html:form … />,这样web 服务器解析时就当作一个无主体的标记,随后使用的所有<html>标记都被认为是在这个标记之外的,如又使用了<html:text property=”id”>还有就是在使用taglib引入HTML标记库时,你使用的prefix的值不是html。  

    340.-----------------------------------------  

    341.异常  

    342.javax.servlet.jsp.JspException: Missing message for key xx.xx.xx  

    343. 

    344.Probable Causes  

    345.这个key的值对没有在资源文件ApplicationResources.properties中定义。如果你使用eclipse时经常碰到这样的情况,当项目重新编译时,eclipse会自动将classes目录下的资源文件删除。  

    346. 

    347.资源文件ApplicationResources.properties 不在classpath中应将资源文件放到 WEB-INF/classes 目录下,当然要在struts-config.xml中定义)   

    348.-----------------------------------------  

    349.异常  

    350.Cannot find message resources under key org.apache.struts.action.MESSAGE  

    351. 

    352.可能原因  

    353.很显然,这个错误是发生在使用资源文件时,而Struts没有找到资源文件。  

    354. 

    355.Implicitly trying to use message resources that are not available (such as using empty html:options tag instead of specifyingthe options in its body -- this assumes options are specified in ApplicationResources.properties file)  

    356. 

    357.XML parser issues -- too many, too few, incorrect/incompatible versions  

    358.-----------------------------------------  

    359.异常  

    360.Strange and seemingly random characters in HTML and on screen, but not in original JSP or servlet.  

    361. 

    362.可能原因  

    363.混和使用Struts的html:form标记和标准的HTML标记不正确。  

    364. 

    365.使用的编码样式在本页中不支持。  

    366.-----------------------------------------  

    367.异常  

    368."Document contained no data" in Netscape  

    369. 

    370.No data rendered (completely empty) page in Microsoft Internet Explorer  

    371. 

    372.可能原因  

    373.使用一个Action的派生类而没有实现perform()方法或execute()方法。在Struts1.0中实现的是 perform()方法,在Struts1.1中实现的是execute()方法,但Struts1.1向后兼容perform()方法。但你使用 Struts1.1创建一个Action的派生类,并且实现了execute()方法,而你在Struts1.0中运行的话,就会得到"Document contained nodata" error message in Netscape or a completely empty (no HTML whatsoever) page rendered in Microsoft Internet Explorer.”的错误信息。  

    374. 

    375.---------------------------------------------------  

    376.异常  

    377.ServletException: BeanUtils.populate  

    378.解决方案  

    379.在用Struts上传文件时,遇到了javax.servlet.ServletException: BeanUtils.populate异常。  

    380.我的ActionServlet并没有用到BeanUtils这些工具类。后来仔细检查代码发现是在jsp文件里的form忘了加enctype= &quot;multipart/form-data&quot; 了。所以写程序遇到错误或异常应该从多方面考虑问题存在的可能性,想到系统提示信息以外的东西。  

    381.----------------------------------------------------  

    382.1. 定义Action后, 如果指定了name, 那么必须要定义一个与它同名的FormBean才能进行form映射.2. 如果定义Action后, 提交页面时出现 "No input attribute for mapping path..." 错误, 则需要在其input属性中定义转向的页面.3. 如果插入新的数据时出现 "Batch update row count wrong:..." 错误, 则说明XXX.hbm.xml中指定的key的类型为原始类型(int, long),因为这种类型会自动分配值, 而这个值往往会让系统认为已经存在该记录, 正确的方法是使用java.lang.Integer或java.lang.Long对象.4. 如果插入数据时出现 "argument type mismatch" 错误, 可能是你使用了Date等特殊对象, 因为struts不能自动从String型转换成Date型,所以, 你需要在Action中手动把String型转换成Date型.5. Hibernate中, Query的iterator()比list()方法快很多.6. 如果出现 "equal symbol expected" 错误, 说明你的strtus标签中包含另一个标签或者变量, 例如:  

    383.<html:select property="test" οnchange="<%=test%>"/>  

    384.或者  

    385.<html:hidden property="test" value="<bean:write name="t" property="p"/>"/>  

    386.这样的情况...  

    387.---------------------------------------------------  

    388.错误:Exception in thread "main" org.hibernate.exception.SQLGrammarException: Could not execute JDBC batch update原因与解决:      因为Hibernate Tools(或者Eclipse本身的Database Explorer)生成*.hbn.xml工具中包含有catalog="***"(*表示数据库名称)这样的属性,将该属性删除就可以了  

    389.---------------------------------------------------  

    390.错误:org.hibernate.ObjectDeletedException: deleted object would be re-saved by cascade (remove deleted object from associations)  

    391.原因与解决:  

    392.方法1 删除Set方的cascade  

    393.方法2 解决关联关系后,再删除  

    394.方法3 在many-to-one方增加cascade 但值不能是none  

    395.最后一招:  

    396.检查一下hashCode equals是否使用了id作为唯一标示的选项了;我用uuid.hex时是没有问题的;但是用了native,就不行了,怎么办?删除啊!  

    397.----------------------------------------------------  

    398.问题:今天用Tomcat 5.5.12,发现原来很好用的系统不能用了,反复测试发现页面中不能包含 taglib,否则会出现以下提示:HTTP Status 500 -type Exception reportMessage description The server encountered an internal error () that prevented it from fulfilling this request.exceptionorg.apache.jasper.JasperException: /index.jsp(1,1) Unable to read TLD "META-INF/tlds/struts-bean.tld" from JAR file"file:*****/WEB-INF/lib/struts.jar":原因:更新了工程用的lib文件夹下的jar,发布时也发布了 servlet.jar和jsp-api.jar。解决:把jsp-api.jar删除就解决这个问题了。---------------------- -------------------------------------------------------------------  

    399.错误: java.lang.NullPointerException  

    400.原因: 发现 dao 实例、 manage 实例等需要注入的东西没有被注入(俗称空指针异常)解决:这个时候,你应该查看日志文件;默认是应用服务器的 log 文件,比如 Tomcat 就是 [Tomcat 安装目录 ]/logs ;你会发现提示你:可能是:org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sf' defined in ServletContextresource [/WEB-INF/applicationContext.xml]: Initialization of bean failed; nested exception isorg.hibernate.HibernateException: could not configure from URL: file:src/hibernate.cfg.xmlorg.hibernate.HibernateException: could not configure from URL: file:src/hibernate.cfg.xml……………………….Caused by: java.io.FileNotFoundException: src\hibernate.cfg.xml可能是: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined inServletContext resource [/WEB-INF/applicationContext.xml]: Initialization of bean failed; nested exception isorg.hibernate.MappingException: Resource: com/mcc/coupon/model/UserRole.hbm.xml not foundorg.hibernate.MappingException: Resource: com/mcc/coupon/model/UserRole.hbm.xml not found然后你就知道原因是因为配置文件的解析出了错误,这个通过 Web 页面是看不出来的。更多的是持久化影射文件出的错误;导致了没有被解析;当然你需要的功能就无法使用了。  

    401.----------------------------------------------------  

    402.错误:StandardWrapperValve[action]: Servlet.service() for servlet action threw exception  

    403.javax.servlet.jsp.JspException: Cannot retrieve mapping for action /settlementTypeManage  

    404.或者:      type Status report      message Servlet action is not available      description The requested resource (Servlet action is not available) is not available.  

    405.原因: 同 上  

    406.----------------------------------------------------  

    407.错误StandardWrapperValve[jsp]: Servlet.service() for servlet jsp threw exceptionjava.lang.ClassNotFoundException: org.apache.struts.taglib.bean.CookieTei界面错误具体描述:  

    408.org.apache.jasper.JasperException: Failed to load or instantiate TagExtraInfo class: org.apache.struts.taglib.bean.CookieTei  

    409.      原因与解决:    <方案一>你的“html:”开头的标签没有放在一个<html:form>中       <方案二>重新启动你的应用服务器,自动就没有这个问题了  

    410. 

    411.   

    412.----------------------------------------------------  

    413. 

    414.java.lang.IllegalStateException: getOutputStream() has already been called for this respons  

    415. 

    416.原因:是web容器生成的servlet代码中有out.write(""),这个和JSP中1.调用的response.getOutputStream()产生冲突.即Servlet规范说明,不能既调用response.getOutputStream(),又调用response.getWriter(),无论先调用哪一个,在调用第二个时候应会抛出IllegalStateException,因为在jsp中,out变量实际上是通过response.getWriter得到的,你的程序中既用了response.getOutputStream,又用了out变量,故出现以上错误。  

    417.   

    418.2.由于jsp container在处理完成请求后会调用releasePageContet方法释放所用的PageContext object,并且同时调用getWriter方法,由于getWriter方法与在jsp页面中使用流相关的getOutputStream方法冲突, 所以会造成这种异常  

    419.解决方案:  

    420.// 输出图象到页面   

    421.ImageIO.write(image, "JPEG", response.getOutputStream());   

    422.增加2句话;  

    423.out.clear();  

    424.//意义是:清空缓存的内容  

    425.out = pageContext.pushBody();   

    426.//返回一个新的BodyContent(代表一个HTML页面的BODY部分内容)  

    427.//保存JspWriter实例的对象out  

    428.//更新PageContext的out属性的内容  

    429. 

    430.----------------------------------------------------  

    431.bad number    

    432.原因: 项目的版本和JDK的版本不兼容  

    433.解决: windows-preferences-server-Integrated Sandbox-Myeclise  tomcat 6-选择和项目版本一致的JDK  

    434.----------------------------------------------------  

    435.Connection reset by peer: socket write error问题的原因  

    436.            这个问题一般是客户端在连接还没有完全建立的时候就取消连接,比如用户按了浏览器上面的“停止”按钮,一般来说没有什么问题。但是如果频繁出现,就表示很多客户端连接到Apache服务器的响应时间太长了,可能是网络的问题或者服务器性能问题     

    437. 

    438.       可能你的网络连接存在一些问题,你的数据传输的时候,可能由于时间等待的太久,但是server段设置的连接检验时间限制一定,那么就可能出现这种情况的!  

    439. 

    440.不过更常见的原因是:  

    441.1:服务器的并发连接数超过了其承载量,服务器会将其中一些连接Down掉;  

    442.2:客户关掉了浏览器,而服务器还在给客户端发送数据;  

    443.3:浏览器端按了Stop;  

    444.4:服务器给客户端响应结果给防火墙拦截了。  

    445.  ...........没写完

    展开全文
  • Java命令行运行错误: 找不到或无法加载主类

    万次阅读 多人点赞 2021-01-17 18:15:46
    前言:虽然学习Java语言约有两年多,但在最近需要使用命令行工具编译并运行Java程序时,还是报错了。花费了一些时间,解决了该问题,发现解决方法在初学Java时使用过。一则,为了避免以后再出现同样的问题而浪费不必...

    前言:虽然学习Java语言约有两年多,但在最近需要使用命令行工具编译并运行Java程序时,还是报错了。花费了一些时间,解决了该问题,发现解决方法在初学Java时使用过。一则,为了避免以后再出现同样的问题而浪费不必要的时间;二则,作为使用该语言的程序员,对于该语言的一些基本问题,应该有清晰的理解和认识;三则,网上的一些解决方案,不够完备。有的没有解释问题原因,直接给出答案;有的,未列举出某些常见情况的解决方案。因此,写此文章,让读者可以举一反三,深入理解问题。

    一、 问题分析

    找不到或无法加载主类,主要原因有两个:

    1. 类名错误

    2. 类所在位置未添加至类加载路径中

    二、 问题解决

    本部分将针对在“一”中提出的两个问题发生原因,分别进行分析及处理。并且会介绍java的一些和处理问题相关的基本概念。

    1. 类名错误

    全限定类名:包名+类名。另外,当包名为空时(即代码不包含package语句),称类所在包为默认包

    例如,以下代码的全限定类名为:“com.gzn.demo.HelloWorld”

    // 文件名HelloWorld.java
    package com.gzn.demo;
    public class HelloWorld {
        public static void main(String args[]) {
            System.out.println("hello world");
        }
    }
    

    在运行java程序时,全限定类名可以唯一确定该文件,就像是文件系统中路径(相当包名)+文件名(相当类名)可以唯一确定一个文件一样。本质上包名发挥的作用和文件系统中的目录相同,有利于文件分隔避免重名。

    现在存在一个问题,Java是如何识别一个类文件的包名的?
    实际上,包名的识别是通过文件系统的目录实现的 。例如,上文提到的包名为“com.gzn.demo”的HelloWorld.java文件,该文件在文件系统中的位置为 “com\gzn\demo”,编译后的HelloWorld.class也在"com\gzn\demo"目录下,因此,在运行java程序后加载类时,只需在“com\gzn\demo”目录下,查看是否存在要查找的文件即可。简而言之,目录(或路径)名于包名存在一一映射的关系,可认为相等。

    在Windows操作系统的命令行下,运行Java代码的语法格式为,注意,此时java命令位于目录com的上一级目录(一般为项目的目录名);类名不能包含扩展名.class

    Java 全限定类名
    例如java com.gzn.demo.HelloWorld;包名为空则为java HelloWorld

    Windows操作系统中还有另一种语法格式(其他系统未必可以),不常用,使用反斜杠代替了点好,之所以没用正斜杠,个人猜测是为了和系统的文件分隔符进行区分:

    例如Java com/gzn/demo/HelloWorld; 包名为空则为java HelloWorld

    可能出错情况一 :在命令行运行java程序时,类名包含了扩展名

    在helloworld项目目录下运行java命令,HelloWorld.class文件在“com\gzn\demo”目录下,即包名为com.gzn.demo,上文已介绍,不在赘述。
    C:\Users\gzn\helloworld>java com.gzn.demo.HelloWorld.class
    或者包名为空
    C:\Users\gzn\helloworld> java HelloWorld.class
    上述写法,会出现报错,原因是它不符号java运行程序的语法格式,java可能把“HelloWorld.class”作为一个整体类名处理,那么要查找的文件可能是“HelloWorld.class.class”,显然是找不到的。

    可能出错情况二 :运行Java命令时未指明全限定类名的包名部分或指明了包名但Java命令运行的位置不正确
    假设HelloWorld.class,包名为com.gzn.demo,所在位置为: C:\Users\gzn\helloworld\com\gzn\demo
    运行以下命令
    C:\Users\gzn\helloworld\com\gzn\demo>java HelloWorld
    运行命令后,会在当前目录下,查找并读取该文件后,发现该类为“com.gzn.demo.HelloWorld”(全限定类名唯一确定一个类,上文已介绍)与我要运行的类“HelloWorld”并不是同一类,因此,找不到要运行的类。
    于是,很自然的一个想法是运行以下命令
    C:\Users\gzn\helloworld\com\gzn\demo>java com.gzn.demo.HelloWorld
    包名和文件名是一一映射的(上文已介绍),运行命令后,会从命令所在位置开始(即以命令所在位置为相对路径),查找“com\gzn\demo\”路径下的HelloWorld文件。由于“C:\Users\gzn\helloworld\com\gzn\demo”路径下根本不存在目录“com”(更不用说gzn\demo),因此,找不到运行的类。

    正确的运行命令的方法,呼之欲出,只需改变命令的运行位置即可,如下所示
    C:\Users\gzn\helloworld>java com.gzn.demo.HelloWorld
    运行命令后,会在“com\gzn\demo”路径下找到并读取HelloWorld文件,发现该类的全限定名为“com.gzn.demo.HelloWorld”,查找的类正是Java想要运行的类。


    以上是比较初级的出错情况,下文将要介绍相对比较高级的出错情况,这也是其他博文未曾给出解决方案的情况。同时还会介绍classpath的概念,及使用方法。加油!

    2. 类所在位置未添加至类加载路径中

    类加载路径(Classpath):当你的程序依赖第三方或者自己写的类文件时,需要指出上述文件的所在位置,即类加载路径。Java虚拟机的类加载器会在你指定的路径中,查找你的程序所依赖的类文件(依赖的类文件 在import语句中指定)

    classpath可以通过以下两种方式指定:

    方式一:配置环境变量

      这种方式是初学Java者肯定了解的方式,通常在下载完JDK后就会进行配置。然而在JDK1.5之后,官方已不建议使用这种方式来指定类加载路径,原因后文扩展部分会谈及。

    在这里插入图片描述
    说明:“.”表示在当前目录,即java等命令运行时所在目录;
    dt.jar是关于运行环境的类库,主要是用于swing的包,如果不使用可以不配置;
    tools.jar是工具类库,它在编译和运行一个类时被使用

    方式二:java命令的-cp(或-classpath)参数指定(官方建议)

    这种方式是JDK1.5后官方建议的方式。当你在命令行下运行java命令时,如果没有指定-classpath参数,那么默认使用环境变量中设置的ClASSPATH。官方建议,你在运行每个程序时,为其显示设置所依赖的类文件所在的位置,而不是使用“全局”性质的环境变量中CLASSPATH。一旦你运行程序时指定了-classpath参数,环境变量中的CLASSPATH就不会在使用,而是使用你参数的classpath。实际上,JDK1.5以后,官方已经不建议配置CLASSPATH环境变量。

    语法格式如下:

    java -cp <路径1;路径2;…> 全限定类名

    路径:依赖的文件所在的绝对路径(或相对路径),如果类文件在jar包中,路径后还要写上jar包的名字,例如“C:\users\gzn\mylib\algs4.jar”
    注意,“.”代表当前路径,即java命令运行时所在路径。

    可能出错情况三 :存在依赖外部jar包时,命令行运行java命令,classpath参数中只是添加了外部jar包路径,没有添加当前目录“.”,导致要运行的类文件找不到。

    或者,程序在IDE(eclipse、IDEA等)开发工具中可以运行,但是在命令行下不能运行,情况相同。

    在某篇高赞博文中,依然存在的问题
    在这里插入图片描述
    下面,通过问题在现的方式,讲解解决方法。
    项目简介:HelloWorld.java程序,位置“C:\Users\gzn\helloworld\com\gzn\demo”,依赖algs4.jar(位置C:\Users\gzn\helloworld)中的edu.princeton.cs.algs4.StdOut类,调用了该类的print函数,其API如下

    public class StdOut
    public static void print(String s); 打印输出指定的字符串

    HelloWorld.java

    package com.gzn.demo;
    import edu.princeton.cs.algs4.StdOut;
    
    public class HelloWorld {
    	public static void main(String args[]) {
    		StdOut.print("Hello World!");
    	}
    }
    

    项目结构如下图所示:
    在这里插入图片描述
    在命令行运行程序时,存在外部依赖,不仅要在-cp (或-classpath)中指明依赖的路径,还有把当前路径加进去。因为当你指定了-classpath参数后,环境变量失效,于是环境变量CLASSPATHY中设置的当前目录“.”也就不能用了。虚拟机类加载器加载类的路径只能在classpath类加载路径指明的位置中查找,如果路径中没有添加当前目录“.”,也就是当前要运行的类所在位置没有添加到类加载路径中,显然会查找不到类。解决方法如下图所示:
    在这里插入图片描述

    三、扩展知识

    1. JDK目录结构及环境变量介绍

    JDK目录介绍
    在这里插入图片描述

    初学者环境变量配置如下:

    变量名
    CLASSPATH.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tool.jar (注,jdk1.5后无需配置)
    JAVA_HOMED:\jdk8(JDK安装目录,视个人安装情况而定)
    Path%JAVA_HOME%\bin;%JAVA_HOME%\jre\bin

    Path为命令行工具指定命令的查找路径。命令的本质是可执行程序,设置后可以在命令行工具下运行java、javac、javah等常用的命令;
    JAVA_HOME 指定了JDK(Java开发工具包)路径。设置后,无论是编译还是运行程序,类加载器都会从相应的目录中加载需要的类库。如运行javac编译命令,会从”%JAVA_HOME%\lib\tool.jar”加载需要的类;通过java命令运行程序,会从“%JAVA_HOME%\jre\lib\rt.jar”加载程序依赖的类;Java虚拟机会从“%JAVA_HOME%\jre\lib\ext\”加载依赖的类。

    jdk中的函数库lib称为Java的标准库,指定了JAVA_HOME环境变量后就可以使用了,编译和运行会自动在相应位置查找依赖的类。而第三方库(如mysql-connector-java-5.1.40.jar)和用户自己定义的类库 在编译和运行时,需要在-cp类加载路径参数中指明库的位置。

    2. 为什么jdk1.5后不需要配置环境变量了?

    此部分内容参考自Java开发环境不再需要配置classpath!

    在JDK1.5之前,是没有办法在当前目录下加载类的(找不到 JDK目录下lib文件夹中的.jar文件),所以我们需要通过配置classpath,但JDK1.5之后,JRE能自动搜索目录下类文件,并且加载dt.jar和tool.jar的类。

    The class path tells the JDK tools and applications where to find third-party and user-defined classes that are not extensions or part of the Java platform. See The Extension Mechanism at
    类路径告诉JDK工具和应用程序在哪里可以找到第三方和用户定义的类,这些类既不是Java平台的扩展,也不是Java平台的一部分。参见扩展机制

    If you upgrade from an earlier release of the JDK, then your startup settings might include CLASSPATH settings that are no longer needed. You should remove any settings that are not application-specific, such as classes.zip. Some third-party applications that use the Java Virtual Machine (JVM) can modify your CLASSPATH environment variable to include the libraries they use. Such settings can remain.

    如果您从JDK的早期版本升级,那么您的启动设置可能包括不再需要的类路径设置。您应该删除任何与应用程序无关的设置,比如classes.zip。一些使用Java虚拟机(JVM)的第三方应用程序可以修改类路径环境变量,以包含它们使用的库。这样的设置可以保留。

    You can change the class path by using the -classpath or -cp option of some Java commands when you call the JVM or other JDK tools or by using the CLASSPATH environment variable. See JDK Commands Class Path Options. Using the -classpath option is preferred over setting the CLASSPATH environment variable because you can set it individually for each application without affecting other applications and without other applications modifying its value. See CLASSPATH Environment Variable.

    在调用JVM或其他JDK工具时,可以使用一些Java命令的-classpath或-cp选项,或者使用CLASSPATH环境变量,来更改类路径。参见JDK命令类路径选项。使用-classpath选项优于设置CLASSPATH环境变量,因为您可以为每个应用程序单独设置它,而不影响其他应用程序,也不需要其他应用程序修改它的值。参见CLASSPATH环境变量。

    展开全文
  • java将字符串转换成时间,并计算时间

    今天在写代码的时候,在将字符串转换成时间的时候,出现了java.text.ParseException: Unparseable date: "2017-1-1 00:00:00"  这样的问题

    DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
            Date start = df.parse(startTime);
            Date stop = df.parse(stopTime);
            long timeSpan = stop.getTime() - start.getTime();
            long hours = timeSpan / (3600 * 1000);

    我通过上面这些代码来计算传入的连个时间的时间差,可以在运行的时候却出现上面那个问题,百度了一下,在进行时间转换的时候,字符串的长度要一一对应,

    也就是说和这个“yyyy-MM-dd“要长度一致,比如2013-1-1要转换成时间的话需要写成”2013-01-01“;

    然后就可以转换成功了!

    不要再用DateForamt或者Calendar来格式化时间了,推荐使用jdk8提供的localdatetime

    参考链接

    展开全文
  • 逻辑错误才是运行错误。  语法错误是不符合语法规则出现的问题。  常见的语法错误如:  Java代码  1.变量可能未初始化   int i;   System.out.println(i);    2.变量
    eclipse在你编写.java文件的时候,它会
    自动编译成.class
    ,在该行左侧提示语法错误。 
    
    语法错误是编译期错误, 
    逻辑错误才是运行期错误。 

    语法错误是不符合语法规则出现的问题。 
    常见的语法错误如: 
    Java代码    收藏代码
    1. 1.变量可能未初始化   
    2.  int i;   
    3.  System.out.println(i);   
    4.   
    5. 2.变量重复定义   
    6.  int i = 1;   
    7.  int i = 2;   
    8.   
    9. 3. 找不到符号:   
    10.    if(j < 0) {   
    11.   
    12. 4. 找不到类的错误   
    13.   T1 a = new T1();   
    14.   
    15. 5. 找不到方法的错误   
    16.   a.a();   
    17.   
    18. 6. 找不到类   
    19.   
    20. 7 找不到这个类(类名跟文件名不一致)   
    21.   
    22. 8. 数组下标越界   
    23. java.lang.ArrayIndexOutOfBoundsException  
    24.   
    25. 9. 字符串下标越界   
    26. java.lang.StringIndexOutOfBoundsException  
    27.   
    28. 10. 空指向   
    29. java.lang.NullPointerException   
    30.    
    31. 11空返回值  
    32.    System.out.println(a5.deleteOnExit());   
    33.   
    34. 12 缺少返回值   
    35.   
    36. 13 没有返回值的方法中不需要返回值   
    37.   
    38. 14. 引用的方法入参不对   
    39.    File ll = f.createTempFile("let","java","aaa");   
    40.   
    41. 15.缺少形参   
    42. 16.无效的方法声明(需要返回类型)   
    43. 17. 要求传入的是数组,却传入了字符串   
    44. 18 找不到构造方法   
    45. 19、数字格式化异常                                                      
    46. 20.不兼容的类型错误提示、  
    47. 21.非静态方法不能在静态上下文中引用   
    48. 22.不是静态方法而用静态方式调用(类名。方法)   
    49. 23静态访问非静态(变量)   
    50. 24. 静态访问非静态(方法)   
    51. 25.continue outside of  loop   (将continue放在for循环外的时候出现的错误报告)   
    52. 26.illegal start of expression  违反规则的表达(将for循环中第二表达放置于for循环外或内部时出现的错误报告)   
    53. 27.不能到达的语句(语句放于continuebreak后出   
    54. 现不能到达,及continuebreak后不能有语句)   
    55. 28.break置于循环语句外   
    56. 29.标识符错误(标识符不合法);   
    57. 30. 没找到方法体,或声明为抽象的(方法)   
    58. 31. 这个类不是抽象类或者没有覆盖重写方法fun1()有抽象的方法的就必须是抽象类   
    59. 32. Myabstract 它是属于抽象类的,不能产生对象。   
    60. 33. 接口的方法不能有方法体   
    61. 34.它是属于抽象类的,不能产生实体   
    62. 35. 接口的方法不能有方法体   
    63. 36. 此处不允许使用static修饰   
    64. 37.不能改变的类型(String 型 不能转换成Int型)   
    65. 38.可能造成精度损失(在整型较大的转换成较小的情况下会造成损失,小的转大的,则不会造成损失。)   
    66. 39分隔符异常   
    67. 40.括号异常   
    68. 41.应用程序试图创建大小为负的数组。  java.lang.NegativeArraySizeException   
    69. 42.出现异常的运算条件 java.lang.ArithmeticException: / by zero   
    70. 43.抽象方法不能被final修饰(抽象类的抽象的东西一定要被继承)   
    71. 44.抽象方法不能被private修饰(抽象类抽象的东西一定要被继承)    
    72. 45.Integer number too large  定义值(整数)过大   

    编译错误是程序在编译阶段,此时程序还没有运行,编译器根据语法规则进行检查会发现错误,并给出错误提示,运行错误就是程序在语法上没有错误,但是随着时间的推移,在程序的运行阶段发生了错误. 
    如数组越界了,空指针等。 
    展开全文
  • java web项目调用python代码+反映python运行错误

    千次阅读 热门讨论 2019-03-01 12:49:21
    问题:本人在做大学服务外包竞赛的项目,遇到“通过java调用python代码”的问题。通过资料查找,发现网上多是推荐用Process pr=Runtime.getRuntime().exec(args1);这一方法(具体内容请自行搜索)。...
  • Java程序运行机制及其运行过程

    万次阅读 多人点赞 2018-07-31 13:34:46
    本文主要讲的是jvm运行java程序。 (一)终端中如何运行一个java程序(这个是我在mac下运行的,windows下原理是一样的,大同小异) 做这个事情的前提下,一定是jdk已经安装好了并且没任何问题。 首先要想运行java...
  • Java 错误和异常汇总

    万次阅读 2018-09-10 13:20:24
    Java中,根据错误性质将运行错误分为两大类:错误和异常。 Java中的所有异常都是由Throwable类的子类生成的对象,所有的异常类都是Throwable类的子类或子类的子类。Throwable类是Object类的直接子类,Error类和...
  • Java运行参数详解

    万次阅读 2017-04-19 17:26:19
    Java运行参数详解,有利于大家对JVM运行机制的理解
  • java错误与调试

    千次阅读 2018-07-03 16:21:27
    在实际项目中,调试时间往往多于开发时间。而且,调试工具也是一个非常好的学习工具,能让我们更好的观察运行过程和中间结果,这对于初学者理解一些抽象的概念是非常有好处的。3.1 错误类型(1)语法错误所谓语法...
  • 本人最近自学java,就安装了JDK-10.0.2,安装网上的教程配置了环境变量,用java,javac,java -version测试没有问题,但是自己又在网上抄写了一段Test.java小程序,在cmd中javac Test.java没有错误java Test时显示了...
  • 在开发的时候,遇到这么一个问题,一个父类数组强转子类数组编译是没有问题,... 因为自己虽然开发了一段时间,但从没有系统的去研究过java的东西,就只是会用而已。所以就只能百度一下,百度之后,就发现这么一句...
  • 怎么解决java.lang.NoClassDefFoundError错误

    万次阅读 多人点赞 2015-06-23 15:22:29
    前言在日常Java开发中,我们经常碰到java.lang.NoClassDefFoundError这样的错误,需要花费很多时间去找错误的原因,具体是哪个类不见了?类明明还在,为什么找不到?而且我们很容易把java.lang.NoClassDefFoundError...
  • 了解java的常用类,常用包,常用接口,运行错误是入门java基础的最基本的东西,也是以后天天见到的.语言只是一个工具, 熟悉这个工具才能让你熟练的干活---一个菜鸟的感悟. 常用类:java.lang.Object、java.lang....
  • Permission denied 搭建了一个Hadoop的环境,Hadoop集群环境部署在几个Linux服务器上,现在想使用windows上的Java客户端来操作集群中的HDFS文件,但是在客户端运行时出现了如下的认证错误,被折磨了几天,问题终得以...
  • java正常运行但javac报错

    千次阅读 2018-11-21 18:51:39
    环境变量设置完,cmd中java正常运行但javac报错出错场景探索解决总结 不想看过程直接看总结吧,节省时间。 废话开始: 出错场景 最近上课需要进行web开发,用tomcat要配置java环境,但是配置完之后发现命令行中运行...
  • 我的一个Java写的带GUI的应用程序,打包...放了一段时间(期间没修改过,修改时间还显示最原始的时间),重新运行时,出现了很多本来没有的非常明显的错误(主要是在GUI上的错误)。请高手帮忙指出可能哪里出问题了?
  • java和javac编译运行java程序

    千次阅读 2015-08-06 20:59:42
    代码编译与运行 java类发现规则 分离class和java文件 参考链接前言给自己定了一个月学习JVM虚拟机的计划,不管有没有卵用,学点新东西总是好的。但是在学习过程中,我想在命令行测试一些JVM参数的时候,发现自己脱离...
  • 终端运行Java程序

    千次阅读 2017-08-02 22:44:10
    好长时间都没有写java程序了,连最基本的编译和运行都忘记了。特记录如下。 1、当Java没有打包的时候,程序的编译和运行都在源文件所在的目录下进行,保证不出错。程序的编译也可以在别的目录,但是源文件的路径要...
  • 这篇文章主要介绍了Java中所有错误和异常的父类java.lang.Throwable,文章中简单地分析了其源码,说明在代码注释中,需要的朋友可以参考下在java语言中,错误类的基类是java.lang.Error,异常类的基类是java.lang....
  • 编译时JAVA最常见的错误

    千次阅读 2012-09-12 10:12:27
     如果你正学习Java语言,你在编译和执行代码的时候遇到问题,一般来说问题将分为2类:无论你遇到的是编译时错误,这说明你的程序编译失败,还是你遇到运行错误,这是指错误发生在你成功地编译了
  • jdk 环境配置后,运行java -path,java -classpath,java -version后出现如图片中的问题,是什么原因?
  • Java命令行运行参数说明大全

    千次阅读 2012-07-23 14:20:17
    Java运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOME"bin"java –option 来启动,-option为虚拟机参数,JAVA_HOME为JDK安装路径,通过这些参数可对虚拟机的运行状态...
  • 以下是从网上找到的关于堆空间溢出的错误解决办法:java.lang.OutOfMemoryError: Java heap space ===================================================使用Java程序从数据库中查询大量的数据时出现异常:java.la...
  • 其实这就是SpringBoot项目运行一段时间停止运行java -jar项目运行一段时间停止、java程序运行一段时间自动关闭 的问题了。 解决方案 用java -jar xxxx-web-0.0.1-SNAPSHOT.jar &amp;gt;xxxx.log&amp;amp...
  • Java 命令行运行参数大全

    千次阅读 2016-08-09 11:35:52
    断言后的表达式的值是一个逻辑值,为true时断言不运行,为false时断言运行,抛出java.lang.AssertionError错误。 上述参数就用来设置虚拟机是否启动断言机制,缺省时虚拟机关闭断言机制,用-ea 可打开断言机制,不...
  • 在日常Java开发中,我们经常碰到java.lang.NoClassDefFoundError这样的错误,需要花费很多时间去找错误的原因,具体是哪个类不见了?类明明还在,为什么找不到?而且我们很容易把java.lang.NoClassDefFoundError和...
  • java.lang.IllegalStateException: Illegal access: this web application instance has been stopped already. Could not load [com.mchange.v2.resourcepool.BasicResourcePool$1DestroyResourceTask]. The ...
  • java项目上线后,第二天再重新运行项目的时候,出现了如下的错误: CommunicationsException:Thelastpacketsuccessfullyreceivedfromtheserverwas60,547,352millisecondsago....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 467,460
精华内容 186,984
关键字:

java算运行时间错误

java 订阅