<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>java.lang.UnsupportedClassVersionError &#8211; 記下來</title>
	<atom:link href="https://noter.tw/tag/java-lang-unsupportedclassversionerror/feed/" rel="self" type="application/rss+xml" />
	<link>https://noter.tw</link>
	<description>一路上踩到的坑、遇到的問題，一點一滴記下來，希望能幫助到需要的人~</description>
	<lastBuildDate>Tue, 02 Jul 2019 05:56:02 +0000</lastBuildDate>
	<language>zh-TW</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.6.3</generator>

<image>
	<url>https://noter.tw/wp-content/uploads/cropped-old-1130742_1920-1-32x32.jpg</url>
	<title>java.lang.UnsupportedClassVersionError &#8211; 記下來</title>
	<link>https://noter.tw</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>java.lang.UnsupportedClassVersionError: Unsupported major.minor version 51.0</title>
		<link>https://noter.tw/3104/java-lang-unsupportedclassversionerror-unsupported-major-minor-version-51-0/</link>
					<comments>https://noter.tw/3104/java-lang-unsupportedclassversionerror-unsupported-major-minor-version-51-0/#respond</comments>
		
		<dc:creator><![CDATA[黃小蛙]]></dc:creator>
		<pubDate>Fri, 18 Oct 2013 10:06:17 +0000</pubDate>
				<category><![CDATA[Web Server]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Eclipse]]></category>
		<category><![CDATA[tomcat]]></category>
		<category><![CDATA[Struts2]]></category>
		<category><![CDATA[java.lang.UnsupportedClassVersionError]]></category>
		<category><![CDATA[JDK]]></category>
		<guid isPermaLink="false">http://wazai.net/?p=3104</guid>

					<description><![CDATA[<p>最近在做一些 struts2 的佈署，之前都是在 Windows 下進行，這次要佈署到遠端機器，OS 不同以及環境不同常造成一些怪異問題，這裡記錄一下如果遇到「java.lang.Unsupporte&#46;&#46;&#46;</p>
<p>這篇文章 <a rel="nofollow" href="https://noter.tw/3104/java-lang-unsupportedclassversionerror-unsupported-major-minor-version-51-0/" data-wpel-link="internal">java.lang.UnsupportedClassVersionError: Unsupported major.minor version 51.0</a> 最早出現於 <a rel="nofollow" href="https://noter.tw" data-wpel-link="internal">記下來</a>。</p>
]]></description>
										<content:encoded><![CDATA[<p>最近在做一些 struts2 的佈署，之前都是在 Windows 下進行，這次要佈署到遠端機器，OS 不同以及環境不同常造成一些怪異問題，這裡記錄一下如果遇到「java.lang.UnsupportedClassVersionError」這個問題的解決方案！<br />
<span id="more-3104"></span><br />
在網路上查了一下，會造成這個原因是兩邊的 Java 版本不符，小蛙開發機上的 Java 是選擇 1.7，而遠端機器 Ubuntu 上面只有 Java 1.6，把整個 Struts2 專案的 war 丟進去之後就跑出以下這個錯誤：</p>
<pre>2013/10/17 上午 11:05:44 org.apache.catalina.core.StandardContext filterStart
嚴重的: Exception starting filter struts2
java.lang.UnsupportedClassVersionError: aaa/bbb/action/LoginAction : Unsupported major.minor version 51.0 (unable to load class aaa.bbb.action.LoginAction)
        at org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2824)
        at org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1150)
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1645)
        at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1523)
        at com.opensymphony.xwork2.util.ClassLoaderUtil.loadClass(ClassLoaderUtil.java:144)
        at com.opensymphony.xwork2.ObjectFactory.getClassInstance(ObjectFactory.java:108)
        at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.verifyAction(XmlConfigurationProvider.java:472)
        at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addAction(XmlConfigurationProvider.java:426)
        at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.addPackage(XmlConfigurationProvider.java:543)
        at com.opensymphony.xwork2.config.providers.XmlConfigurationProvider.loadPackages(XmlConfigurationProvider.java:292)
        at org.apache.struts2.config.StrutsXmlConfigurationProvider.loadPackages(StrutsXmlConfigurationProvider.java:112)
        at com.opensymphony.xwork2.config.impl.DefaultConfiguration.reloadContainer(DefaultConfiguration.java:250)
        at com.opensymphony.xwork2.config.ConfigurationManager.getConfiguration(ConfigurationManager.java:67)
        at org.apache.struts2.dispatcher.Dispatcher.init_PreloadConfiguration(Dispatcher.java:429)
        at org.apache.struts2.dispatcher.Dispatcher.init(Dispatcher.java:473)
        at org.apache.struts2.dispatcher.ng.InitOperations.initDispatcher(InitOperations.java:74)
        at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.init(StrutsPrepareAndExecuteFilter.java:51)
        at org.apache.catalina.core.ApplicationFilterConfig.initFilter(ApplicationFilterConfig.java:273)
        at org.apache.catalina.core.ApplicationFilterConfig.getFilter(ApplicationFilterConfig.java:254)
        at org.apache.catalina.core.ApplicationFilterConfig.setFilterDef(ApplicationFilterConfig.java:372)
        at org.apache.catalina.core.ApplicationFilterConfig.&lt;init&gt;(ApplicationFilterConfig.java:98)
        at org.apache.catalina.core.StandardContext.filterStart(StandardContext.java:4584)
        at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5262)
        at org.apache.catalina.core.StandardContext$2.call(StandardContext.java:5257)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
        at java.util.concurrent.FutureTask.run(FutureTask.java:138)
        at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
        at java.lang.Thread.run(Thread.java:662)</pre>
<p>解決方法是在 Eclipse -&gt; Project -&gt; Properties -&gt; Java Compiler -&gt; &nbsp;Compiler compliance level 1.6 這裡設定成符合的版本即可，但還是要注意不管是 1.6 or 1.7 如果有使用到特定版本的寫法，可能會出現一些錯誤喔！比較好的方法是讓本機端跟遠端不管是 JDK 或 Tomcat 版本一致才是上策。(參考資料2)<br />
小蛙透過上面的方法設定不同版本的 JDK 後，Project -&gt; Clean 選擇剛剛變更過的專案，卻發生下面的錯誤：</p>
<pre>Java compiler level does not match the version of the installed Java project facet.
Faceted Project Problem (Java Version Mismatch)</pre>
<p>什麼是 Eclipse Project Facet？(from 參考資料1 :&nbsp;<a href="http://tomkuo139.blogspot.tw/2012/01/eclipse-project-facet.html" target="_blank" rel="noopener noreferrer nofollow external" data-wpel-link="external" class="wpel-icon-right">Eclipse Project Facet 功能 @&nbsp;昭佑.天翔<span class="wpel-icon wpel-image wpel-icon-6"></span></a>)</p>
<blockquote><p>Project Facets 只要是方便你 &#8220;快速擴充套件&#8221; 與 &#8220;控管套件版本&#8221;,<br />
只要你在 Project Facets 勾選要擴充的套件,<br />
Eclipse 會自動幫你將相關套件加入到&nbsp;Java Build Path / Web App Libraries&nbsp;(也就是&nbsp;WEB-INF/lib) 目錄中.</p></blockquote>
<p>上面的錯誤是因為我們調整的 Java Compiler 的版本，但是卻跟 Project Facet 設定的不一樣造成的，這邊只要到</p>
<pre>Project -&gt; Properties -&gt; Project Facets -&gt; Java -&gt; 1.6 設定成跟剛剛的 Compiler compliance&nbsp;level 相同即可！</pre>
<p><strong>參考資料：</strong></p>
<ol>
<li>Eclipse Project Facet 功能 @&nbsp;昭佑.天翔<br />
<address><a href="http://tomkuo139.blogspot.tw/2012/01/eclipse-project-facet.html" target="_blank" rel="noopener noreferrer nofollow external" data-wpel-link="external" class="wpel-icon-right">http://tomkuo139.blogspot.tw/2012/01/eclipse-project-facet.html<span class="wpel-icon wpel-image wpel-icon-6"></span></a></address>
</li>
<li>Eclipse: java.lang.UnsupportedClassVersionError: Bad version number in .class file<br />
<address><a href="http://www.programcreek.com/2010/05/java-lang-unsupportedclassversionerror-bad-version-number-in-class-file/" target="_blank" rel="noopener noreferrer nofollow external" data-wpel-link="external" class="wpel-icon-right">http://www.programcreek.com/2010/05/java-lang-unsupportedclassversionerror-bad-version-number-in-class-file/<span class="wpel-icon wpel-image wpel-icon-6"></span></a></address>
</li>
</ol>
<p>這篇文章 <a rel="nofollow" href="https://noter.tw/3104/java-lang-unsupportedclassversionerror-unsupported-major-minor-version-51-0/" data-wpel-link="internal">java.lang.UnsupportedClassVersionError: Unsupported major.minor version 51.0</a> 最早出現於 <a rel="nofollow" href="https://noter.tw" data-wpel-link="internal">記下來</a>。</p>
]]></content:encoded>
					
					<wfw:commentRss>https://noter.tw/3104/java-lang-unsupportedclassversionerror-unsupported-major-minor-version-51-0/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
