⑴ java,同樣一個類,在一個工程下能執行,另一個工程下不能執行,為什麼
jdk的版寬山本可能不一樣。jdk的版本寬巧譽不一樣導致編譯出來的結果慎段就不一樣,建議查下jdk的版本在兩個工程中是否相同
⑵ java中maven引用擁有同名方法的jar包的問題
如果A1和A2是獨立存在的,maven是可以巧乎支持這樣培前的。
1:孝中悉打成jar包(A1/A2)
2:對應的maven信息(A1/A2)
望採納!
⑶ 如果一個java工程里,有同一個jar包的多個版本,會有什麼影響
這根據程序應用伺服器的編譯級別級新舊jar包的區別有關。影響可大可小,小則可以忽略,打則直接導致程序無法運行,報錯。建議最好是用更高級版本的jar包後立即刪除舊的。據我所知和經驗得出。websphere的編譯級別比要 tamcat和weblogic嚴格一些。相同的程序,如果有新舊兩個jar包首漏。在tamcat和weblogic中跑可能不會出錯,但是部署到websphere伺服器上很可能會出錯(工作中遇到過,可費了不少麻煩,死活找不出原因)。我猜測原因可能是伺服器允許載入的jar包有區別。比如websphere伺服器上的程序只允許載入兩個相同者輪爛但版本不同的jar中的桐碰一個,而tomcat和weblogic允許程序兩個都載入進去。這樣程序就會找到合適的需要載入的jar包。留下低級的jar包還有可能被攻擊,如果有漏洞的話。
⑷ java工程是先跑源碼還是先跑jar包
jar包應該是在你用到他的時候指攜會調宴氏用,不會自己自動跑的吧,你在源碼裡面引用jar包,那源晌逗散碼運行到引用jar包的地方就會跑jar包了,這是我的理解
⑸ 工程jar與源文件jar有啥區別
源文件Jar中放的是源代碼.java文件,工程Jar是編譯後的.class文件。
⑹ java編譯的問題 兩個類在同一個包中 源代碼如下
javac
*.java
這樣試一下乎鎮。
如果你這兩個類,A引用了歲鋒粗B類
那麼就要選編譯出B類。
如果相互引用了的話,編譯那個都基兆是不成功的,就用
javac
*.java
⑺ 兩個JAR包,內容同路徑同名,怎麼救
把A、B都配置依賴, 即:Require-Bundle:A,B比如:如果A,B都配置成依賴,那麼A,B,以及lib下的第三方脊棚.jar屬於同一個類嫌臘載入器(classloader) 就不會沖突 如果僅僅芹野滑把A配置成依賴,那麼A以及lib下的第三方.jar屬於同一個classloader ,而B(裡面也有第三方.jar)屬於另外一個類載入器(classloader)兩個類載入器中有同樣的類(第三方.jar) 就會沖突 不同類載入器中不能出現相同的類
⑻ Weblogic項目運行時工程裡面的jar和工程中的類名相同哪個會生效
解決以上問題思路是讓JVM優先加派信襲載web項坦殲目的antlr.jar包,而不是weblogic自帶的較低版本的antlr.jar包。
一、如果是在MyEclipse中啟動:
在塵兄MyEclipse的Preferences->Server->WebLogic->WebLogic10.x配置
展開Paths,在Prepend to classPath,將web項目lib目錄下的antlr-2.7.6.jar包加入:
通過上面配置,啟動WebLogic,問題解決。
⑼ 創建的類,包括類路徑與外部添加的jar包中文件路徑相同,文件名相同。外部調用的時候調用的是哪個類
調用的是你自己編寫的類啊。運行的時候當然是先找你自己的class文件,找不到再找jar包里的了。
⑽ 兩個jar包含相同類怎麼解決
問題背景:我在工程中引入了smiley-http-proxy-servletjar包
然後運行報錯 java..NoSuchMethodError: org.apache.http.util.EntityUtils.consume(Lorg/apache/http/HttpEntity;)V
給我的第一感覺就是一個jar沖突的問題,引入渣鬧嘩了這個smiley-http-proxy-servlet依賴之後自動隱式引入了httpcore。
如下在idae中搜索類全限定名org.apache.http.util.EntityUtils。發現有兩個jar中都包含了這個。
且二者的version.properties中版本不通。如行
httpcore-4.4.8.jar 是4.4.8版本;
GMServiceClient-1.0.jar 的httpcore版本是4.0;
因為java運行時去找的版本是httpcore-4.0.jar,而EntityUtils.consume方法在4.0版本中不存在的。彎並因此報錯 java..NoSuchMethodError: org.apache.http.util.EntityUtils.consume(Lorg/apache/http/HttpEntity;)V
解決方法
方法1、將smiley-http-proxy-servlet依賴移動到GMServiceClient-1.0.jar依賴之前,這樣的話運行時就會去找httpcore-4.4.8.jar 了
方法2、自己創建所有沖突的類