Home Php C# Sql C C++ Javascript Python Java Go Android Git Linux Asp.net Django .net Node.js Ios Xcode Cocoa Iphone Mysql Tomcat Mongodb Bash Objective-c Scala Visual-studio Apache Elasticsearch Jar Eclipse Jquery Ruby-on-rails Ruby Rubygems Android-studio Spring Lua Sqlite Emacs Ubuntu Perl Docker Swift Amazon-web-services Svn Html Ajax Xml Java-ee Maven Intellij-idea Rvm Macos Unix Css Ipad Postgresql Css3 Json Windows-server Vue.js Typescript Oracle Hibernate Internet-explorer Github Tensorflow Laravel Symfony Redis Html5 Google-app-engine Nginx Firefox Sqlalchemy Lucene Erlang Flask Vim Solr Webview Facebook Zend-framework Virtualenv Nosql Ide Twitter Safari Flutter Bundle Phonegap Centos Sphinx Actionscript Tornado Register | Login | Edit Tags | New Questions | 繁体 | 简体


10 questions online user: 6

0
votes
answers
54 views
+10

Jxmaps 30天試用.jar

-3

我正在用JxMaps做一個大學的項目,我需要將我的java項目轉換成.jar,但我不知道,如果應用程序可以在其他電腦上使用此許可證。 在我的主要電腦中,jar工作正常。Jxmaps 30天試用.jar

我嘗試在我的其他電腦上運行jar,雖然許可證在該範圍內,但無法正常播放。我用cmd來查看發生了什麼,但我沒有發現任何錯誤,而且都是正確的。

我需要這樣做,因爲我必須以jar格式將我的應用程序發送給我的老師。

那麼,有人知道我能做什麼?

謝謝

+2

對不起,我們不知道你在說什麼。你可能應該問JxMaps支持而不是這裏。 –

沙发
0
0

license.jar沒有任何綁定的某個PC。因此,在試用期到期之前,它將在每臺PC上有效。

0
votes
answers
68 views
+10

如何將jar庫添加到lib和lib/ext目錄下的Wildfly服務器?

0

我想盡量減少我的myapp.ear文件以將某些庫移動到服務器wildfly 10,但我發現的簡單方法是通過包含在standalone.xml部署中,如下面的示例。如何將jar庫添加到lib和lib/ext目錄下的Wildfly服務器?

<deployments> 
    <deployment name="mysql-connector-java-5.0.8-bin.jar" runtime-name="mysql-connector-java-5.0.8-bin.jar"> 
     <content sha1="7b9bfb6c4e4885660378a9c13330915c321f6cca"/> 
    </deployment> 
</deployments> 

,我可以使用圖書館的Maven作爲例子

<dependency> 
     <groupId>javax.servlet</groupId> 
     <artifactId>servlet-api</artifactId> 
     <version>2.5</version> 
     <scope>provided</scope> 
</dependency> 

有沒有一種簡單的方法來添加和加載圖書館../lib或../lib/ext?

+0

您可以創建'靜態'模塊並依賴它們。 – ehsavoie

+0

這會怎樣?你有一個例子嗎? – Joe

+0

爲你的驅動創建一個module.xml文件: <依賴性> <模塊名稱= 「javax.api」/> <模塊名稱= 「javax.transaction.api」/> <模塊名稱= 「javax.servlet.api」 可選= 「真」/ > ehsavoie

沙发
0
0

要定義wildfly 10一個新的模塊,我們可以在其他使用jboss-cli.sh。

創建模塊依賴

../wildflly/bin$ ./jboss-cli 
[[email protected]:9990 /] module add 
--name=org.mysql 
--resources=<path-res>/mysql-connector-java-5.1.45-bin.jar 
--dependencies=javax.api,javax.transaction.api 

我用作<路徑解析度> ../standalone/lib

創建數據源驅動

[[email protected]:9990 /]/subsystem=datasources/jdbc-driver= 
mysql:add(driver-module-name=org.mysql, 
driver-name=mysql, 
driver-class-name=com.mysql.jdbc.Driver) 

創建數據庫源(例如機智h默認mysql端口)

[[email protected]:9990 /] /subsystem=datasources/data-source= 
MySQLDS:add(jndi-name=java:jboss/datasources/MySQLDS, 
driver-name=mysql, 
connection-url=jdbc:mysql://localhost:3306/schema, 
user-name=root, 
password=pass) 
板凳
0
0

您的驅動程序創建一個像他的一個module.xml文件:

<module xmlns="urn:jboss:module:1.5" name="com.mysql"> 
    <resources> 
     <resource-root path="mysql-connector-java-5.0.8-bin.jar"/> 
    </resources> 
    <dependencies> 
     <module name="javax.api"/> 
     <module name="javax.transaction.api"/> 
    </dependencies> 

執行: 。

/jboss-cli.sh -c --command="module add --module-xml=<path-to-file>/module.xml --resources=<path-to-file>/mysql-connector-java-5.0.8-bin.jar" 
0
votes
answers
61 views
+10

如何在maven中捆綁第三方jar?

1

我想使用maven bundle插件將tibjms.jar和javax.jms-api-2.0.jar捆綁到一個包中。由於tibjms.jar不是在Maven回購我第一次把它添加到我的本地回購:如何在maven中捆綁第三方jar?

mvn install:install-file -Dfile=/home/riyafa/Documents/Workspace/Support/NNINSURANCESUB-17/tibco/libs/jms-2.0.jar -DgroupId=com.tibco -DartifactId=tibjms -Dversion=4.4.0 -Dpackaging=jar -DgeneratePom=false 

然後,我創建了以下POM文件,並建立了它:

<?xml version="1.0" encoding="UTF-8"?> 
<project xmlns="http://maven.apache.org/POM/4.0.0" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> 
    <modelVersion>4.0.0</modelVersion> 

    <groupId>org.riyafa</groupId> 
    <artifactId>tibco</artifactId> 
    <packaging>bundle</packaging> 
    <version>1</version> 

    <dependencies> 
     <dependency> 
      <groupId>com.tibco</groupId> 
      <artifactId>tibjms</artifactId> 
      <version>4.4.0</version> 
      <type>jar</type> 
     </dependency> 

     <dependency> 
      <groupId>javax.jms</groupId> 
      <artifactId>javax.jms-api</artifactId> 
      <version>2.0</version> 
     </dependency> 
    </dependencies> 

    <build> 
     <plugins> 
      <plugin> 
       <groupId>org.apache.felix</groupId> 
       <artifactId>maven-bundle-plugin</artifactId> 
       <version>3.3.0</version> 
       <extensions>true</extensions> 
       <configuration> 
        <instructions> 
         <Bundle-SymbolicName>${project.artifactId}</Bundle-SymbolicName> 
         <Bundle-Name>${project.artifactId}</Bundle-Name> 
         <Export-Package> 
          com.tibco.tibjms.*, 
          com.tibco.tibjms.naming.*, 
          com.tibco.tibjms.naming.tibjmsnaming.*, 
         </Export-Package> 
         <Import-Package> 
          *, 
          !javax.jms.*, 
         </Import-Package> 

         <Embed-Dependency> 
          javax.jms-api;scope=compile|runtime;inline=false; 
         </Embed-Dependency> 
        </instructions> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
</project> 

構建成功,但我只看到生成的jar中的javax.jms-api-2.0.jar: enter image description here

我想捆綁兩個罐子。當其中一個罐子是一個thirparty罐子時,我怎麼能做到這一點?我也嘗試添加jar到pom文件作爲外部庫,它不起作用。

沙发
0
1

難道你沒有忘記爲tibjms添加EmbedDependency?您還可以嵌入所有的編譯和運行時depenedencies:

<Embed-Dependency>*;scope=compile|runtime;inline=false</Embed-Dependency> 

請注意,javax.jms-api已經打包成捆。如果tibco工件的唯一用途是將tibjmsjms-api捆綁在一起,則可以考慮完全跳過它,而是將tibjms作爲捆綁包進行打包。然後,您可以將tibjmsjms-api作爲單獨的捆綁包進行部署。

+0

謝謝!我希望它們在單個包中,因爲我希望由jms-api公開的方法僅對tibjms.jar可見,因爲它與另一個jar衝突。 –

+0

關於能見度的好處! – gjoranv

0
votes
answers
55 views
+10

如何進入IntelliJ中JUnit插件的源代碼?

0

當我在IntelliJ(2017.2 Community Edition)的調試模式下運行我的測試時,源代碼僅適用於某些代碼。如何進入IntelliJ中JUnit插件的源代碼?

特別是,當我遍歷程序包com.intellij.junit4中的代碼時,調試器會在堆棧視圖中顯示方法名稱和行號,但代碼不會出現在編輯器中。

沙发
0
0

您需要將包含源代碼的jar添加到項目的類路徑中。該jar位於相對於安裝IntelliJ的文件夾的路徑plugins/junit/lib/junit-rt.jar

轉到「項目結構」>「庫」>「+」>「Java」並添加Jar的路徑。請參閱this answer

0
votes
answers
67 views
+10

如何重命名使用gradle工作區插件生成的包

-1

好吧,我想重命名由我的構建生成的包,以指定其名稱中的版本,但我所做的一切似乎都被忽略,並且包最終與項目文件夾名稱每次。如何重命名使用gradle工作區插件生成的包

的build.gradle文件

apply plugin: 'java' 

repositories { 
    mavenCentral() 
} 

dependencies { 
    // https://mvnrepository.com/artifact/org.osgi/org.osgi.core 
    compile group: 'org.osgi', name: 'org.osgi.core', version: '6.0.0' 
} 

task copyJar(type: Copy) { 
    from('generated') 
    include('*.jar') 
    into("$rootDir/build/lib/bundles") 
} 

build.finalizedBy(copyJar) 

gradle.properties

bundle_name=helloworld 
bundle_version=5.1.2 

從我個人理解,jar任務使用基本名稱和版本屬性,與其他屬性一起命名的罐子,如果沒有已經指定,所以我嘗試build.gradle文件,但它不工作,我不斷得到一個jar文件的項目文件夾的名稱

jar.baseName = "$bundle_name" 
jar.version = "$bundle_version" 

也即時通訊使用BND工作區插件,並且我認爲它覆蓋的方式jar任務的作品,但林不知道

這裏的build.gradle

//Applying the Gradle BND Plugin for Workspace Builds 
    //https://github.com/bndtools/bnd/blob/master/biz.aQute.bnd.gradle/README.md 
buildscript { 
    repositories { 
     mavenCentral() 
    } 
    dependencies { 
     classpath "biz.aQute.bnd:biz.aQute.bnd.gradle:${bnd_version}" 
    } 
} 
apply plugin: 'biz.aQute.bnd.workspace' 
apply plugin: 'java' 

    // Repositorios, aguante Maven Central. 
/* 
repositories { 
    mavenCentral() 
} 
*/ 

clean { 
    delete ("$rootDir/build/libs/bundles") 
} 

感謝你的父項目閱讀

沙发
0
1

如果您使用的是Bnd工作區插件,那麼您必須通過項目的bnd.bnd文件控制Bnd。請參閱-outputmask指令以控制輸出名稱。

+0

工程就像一個魅力,現在我明白了。非常感謝您的先生 –

+0

我可以問一個跟進問題嗎?現在它工作,我得到了所需名稱的jar文件,但gradle現在生成兩個jar文件,一個是我在bnd.bnd文件中設置的名稱,另一個是previus通用名稱的jar,我可以在哪裏禁用創建更新的jar文件? –

0
votes
answers
71 views
+10

無法從終端運行ghci

1

我正在嘗試爲項目的Haskell分配運行ghci。然而,它給了我此錯誤消息:無法從終端運行ghci

/usr/local/haskell/ghc-8.2.1-x86_64/lib/ghc-8.2.1/bin/ghc: error while loading shared libraries: libtinfo.so.5: cannot open shared object file: No such file or directory 

我試圖讓使用LN象徵libtinfo.so.5,但它仍然無法正常工作。進入 '定位libtinfo.so.5' 給了我下面的:

/usr/lib/libtinfo.so.5 

/usr/local/haskell/ghc-8.2.1-x86_64/lib/libtinfo.so.5 

我跑Manjaro Linux操作系統。

+3

嘗試'LD_LIBRARY_PATH =的/ usr /本地/哈斯克爾/ GHC-8.2.1-x86_64的/ lib目錄GHC --interactive' –

+0

可悲的是回報相同的錯誤信息。 – jortseljongen

+0

您可能會嘗試使用strace來查看確切搜索哪些目錄以查看鏈接器是否在正確的位置檢查 –

沙发
0
0

運行以下命令:

$ sudo pacman-key --refresh-keys 
$ gpg --keyserver pgp.mit.edu --recv-keys C52048C0C0748FEE227D47A2702353E0F7E48EDB 
$ yaourt -S ncurses5-compat-libs 

然後嘗試運行GHCI

0
votes
answers
73 views
+10

Java - 命令行中的jar與自己的參數和自己的參數

-2

我無法找到簡單的解決方案來解決我在Java中的問題。我必須使用帶參數的命令行來運行JAR文件。Java - 命令行中的jar與自己的參數和自己的參數

我知道如何做到這一點像的下方,它的正常工作:

Java的罐子filename.jar參數1參數2等 例如:Java的罐子file.jar 50 10

但是,我應該怎麼做,我希望使用一些參數? 例如: java -jar文件-width 50 -height 10

這可能嗎?

[編輯] 我無法使用外部庫。

任何類似的答案對初學者來說都不是那麼容易,其中一些對我來說不起作用。我不是那麼愚蠢的先打開票,我一直在尋找答案兩天。但是,如果您仍然認爲這是重複的,請刪除此主題中的所有帖子:/。

+0

有庫,幫助您與此有關。 – Koekje

+0

什麼庫? – mehow

沙发
0
2

您可以使用Apache Common CLI

// create Options object 
Options options = new Options(); 
// add t option 
options.addOption("t", false, "display current time"); 
CommandLineParser parser = new DefaultParser(); 
CommandLine cmd = parser.parse(options, args); 
if(cmd.hasOption("t")) { 
    // print the date and time 
} else { 
    // print the date 
} 
+0

要使用它,我必須添加這個庫,有沒有更簡單的方法來做到這一點? – mehow

+0

如果您不想添加庫,則可以編寫自己的解析算法。正如你所說,你已經能夠在之前使用程序參數:「我知道如何做到這一點,並且它工作正常:java -jar filename.jar argument1 argument2 etc」對於你的新需求argument1 =「-width」, argument2 =「50」等。爲避免使用第三方庫,您可以編寫自己的解析來計算如何關聯名稱和值,但是爲什麼在已爲您免費提供的情況下重新創建邏輯? –

0
votes
answers
64 views
+10

無效的文件(壞的幻數):當我執行JAR文件時,如何解決這個問題不能使用這個Java代碼?

0

IM triying運行這段代碼中使用事件執行一個jar文件,但沒有工作無效的文件(壞的幻數):當我執行JAR文件時,如何解決這個問題不能使用這個Java代碼?

我怎麼能解決

IM triying運行這段代碼中使用事件執行一個jar文件,但沒有作品

我怎麼能解決

JButton cn= new JButton("push me3"); 
    cn.setBounds(0,0,295,20); 
    f.add(cn); 
    cn.addActionListener(new ActionListener(){ 

    @Override 
    public void actionPerformed(ActionEvent e)  { 
    String title =hellopanelx40.getText(); 
    try{ 

    //All your IO Operations 

    Process proc = Runtime.getRuntime().exec("/home/example.jar"); 
    proc.waitFor(); 
    // Then retreive the process output 
    InputStream in = proc.getInputStream(); 
    InputStream err = proc.getErrorStream(); 

    byte b[]=new byte[in.available()]; 
    in.read(b,0,b.length); 
    System.out.println(new String(b)); 

    byte c[]=new byte[err.available()]; 
    err.read(c,0,c.length); 
    System.out.println(new String(c)); 

    }catch(Throwable t){ 
    t.printStackTrace(); 
     } 
    } 
    }); 

請幫我

+0

我已經低估了這個問題,因爲你在這裏發佈了代碼而沒有指定它有什麼問題。我們期望看到你期望的代碼做什麼,爲什麼你期望它做到這一點,它實際上在做什麼(在適當的情況下有完整的錯誤消息和堆棧跟蹤)以及它爲什麼是錯誤的。請[編輯]您的問題以包含此信息,然後我會考慮收回我的downvote。 –

+0

嗨對不起,我的問題是,當我在終端工程中執行一個jar文件;但是當我執行使用java不起作用。 – user8903285

+0

請[編輯]你的問題,包括確切的命令,沒有確切的命令,以及你得到的確切錯誤(完整的堆棧跟蹤)。 –

沙发
0
0

在執行exec(),嘗試改變「JAV一個-jar /home/example.jar「

+0

是的工作我沒有看到這個錯誤 – user8903285

+0

非常謝謝你。 – user8903285

0
votes
answers
60 views
+10

如何從PHP中的JAR捕獲返回值並顯示它

1

我有以下JAVA程序已被轉換爲JAR文件並放在與我的PHP文件相同的目錄中。 所以基本上它需要通過PHP傳遞參數,並顯示如何從PHP中的JAR捕獲返回值並顯示它

public class Test { 
    public static void main(String[] args) throws Exception { 
     //Takes the value passed from the PHP 
     String Name = (new String(args[0])).toString(); 
     //This will be treated as Output Parameter which will be returned to PHP 
     System.out.println("Return to PHP"); 

    } 
} 

下面是我的PHP代碼將執行JAR文件和所需的1個參數傳遞給JAR。

<?php 

$arg1 = "My_INPUT_PARAMETER"; 

shell_exec("java -jar TEST.jar $arg1"); 
echo "Done"; 

?> 

我在某處讀到Sysout(System.out.println)中放置的任何內容都將被視爲輸出參數或PHP返回值。 所以在我的情況下,它將是字符串「返回到PHP」。

但我無法獲得PHP的價值並顯示它。

我試着在exec語句中放置一個輸出值,但它不起作用。 我嘗試了下面的代碼,但它拋出我的錯誤。

<?php 

$arg1 = "My_INPUT_PARAMETER"; 
$output = ''; 

shell_exec("java -jar TEST.jar $arg1", $output); 
echo "Done"; 
echo $output; 

?> 

誰能幫助我在這裏,我怎樣才能從PHP得到PHP或輸出參數返回值,並顯示它或我的PHP中使用它,並繼續與其他執行部分。

+0

看看藝術第一個例子在文檔http://php.net/manual/en/function.shell-exec.php。 '$ output = shell_exec(「java -jar TEST.jar $ arg1」);' –

+0

@RolandStarke感謝隊友,它的工作文件。這適用於單個返回值但是,如果JAR文件返回多個值,那我該如何使用它呢? –

沙发
0
0

謝謝@Roland Starke。

所以基本上我們可以用2條語句從PHP運行JAR文件: EXEC和SHELL_EXEC。

EXEC將保存來自JAR文件的所有返回值,我們可以使用它作爲數組並顯示所需的輸出參數。

SHELL_EXEC將保存所有的輸出參數,它將一次顯示全部。

<?php 

$arg1 = "Multi Return"; 

exec("java -jar TEST.jar $arg1",$output); 

echo $output[0]."<br/>"; 

echo $output[1]; 

echo "-------------------------------"; 

$shell_out = shell_exec("java -jar TEST.jar $arg1"); 

echo $shell_out; 

?> 
0
votes
answers
85 views
+10

爲什麼java.lang.NoSuchMethodError出現非常特定於環境或類加載器?

0

我目前正在開發一個項目,其中包含log4j-over-slf4j.jar文件。在所有的環境中,這個罐子都在工作。但突然間我有一臺WebSphere應用程序服務器。 我們的產品在tomcat服務器上工作,突然之間,我們的應用程序無法創建任何日誌,而在另一個環境中創建它。如果我嘗試從項目中刪除該jar,那麼我可以生成日誌。爲什麼java.lang.NoSuchMethodError出現非常特定於環境或類加載器?

但我無法確定爲什麼我應該只爲特定的環境做這件事。

或者我應該怎麼做才能在服務器運行時識別類加載器信息以確定哪個類被加載或哪個方法被加載?

我的JDK版本是: 「1.7.0_71」

我的應用程序中包含這些庫:

antlr-2.7.7.jar 
aopalliance-1.0.jar 
asm-1.5.3.jar 
asm-attrs-1.5.3.jar 
axiom-api-1.2.12.jar 
axiom-impl-1.2.12.jar 
axis2-1.6.2.jar 
axis2-kernel-1.6.1.jar 
axis2-transport-http-1.6.1.jar 
axis2-transport-local-1.6.1.jar 
c3p0-0.9.2.1.jar 
cglib-2.1_3.jar 
com.ibm.jbatch-tck-spi-1.0.jar 
commons-codec-1.6.jar 
commons-collections-3.1.jar 
commons-fileupload-1.2.jar 
commons-httpclient-3.1.jar 
commons-logging-1.1.3.jar 
dom4j-1.6.1.jar 
ehcache-1.2.3.jar 
geronimo-activation_1.1_spec-1.0.2.jar 
geronimo-javamail_1.4_spec-1.6.jar 
geronimo-jta_1.1_spec-1.1.jar 
geronimo-stax-api_1.0_spec-1.0.1.jar 
geronimo-ws-metadata_2.0_spec-1.1.2.jar 
hibernate-3.2.4.ga.jar 
hibernate-annotations-3.3.0.ga.jar 
hibernate-commons-annotations-3.1.0.GA.jar 
hibernate-core-3.3.0.CR2.jar 
hibernate-ehcache-3.3.0.CR2.jar 
hibernate-entitymanager-3.3.1.ga.jar 
hibernate-jpa-2.0-api-1.0.0.Final.jar 
hibernate-validator-3.1.0.CR2.jar 
httpcore-4.0.jar 
javaetmoi-spring4-vfs2-support-1.4.0.jar 
javassist-3.18.1-GA.jar 
javassist-3.3.GA.jar 
javax.batch-api-1.0.jar 
javax.servlet-api-3.0.1.jar 
jaxen-1.1.1.jar 
jboss-common-core-2.0.4.GA.jar 
jboss-logging-3.3.0.Final.jar 
jettison-1.2.jar 
jsr311-api-1.0.jar 
jta-1.1.jar 
log4j-1.2.17.jar 
log4j-api-2.0.jar 
logkit-1.0.1.jar 
mchange-commons-java-0.2.3.4.jar 
neethi-3.0.1.jar 
oracle-ojdbc6-11.2.0.3.0.jar 
persistence-api-1.0.jar 
poi-3.9.jar 
slf4j-api-1.7.11.jar 
slf4j-simple-1.6.4.jar 
spring-aop-3.2.13.RELEASE.jar 
spring-batch-core-3.0.1.RELEASE.jar 
spring-batch-infrastructure-3.0.1.RELEASE.jar 
spring-beans-3.2.13.RELEASE.jar 
spring-context-3.2.13.RELEASE.jar 
spring-core-3.2.13.RELEASE.jar 
spring-expression-3.2.13.RELEASE.jar 
spring-jdbc-3.2.13.RELEASE.jar 
spring-orm-3.2.13.RELEASE.jar 
spring-retry-1.0.3.RELEASE.jar 
spring-tx-3.2.13.RELEASE.jar 
spring-web-4.0.3.RELEASE.jar 
stax-api-1.0.1.jar 
woden-api-1.0M9.jar 
woden-impl-commons-1.0M9.jar 
woden-impl-dom-1.0M9.jar 
wsdl4j-1.6.2.jar 
wstx-asl-3.2.9.jar 
xmlbeans-2.5.0.jar 
xmlpull-1.1.3.1.jar 
XmlSchema-1.4.7.jar 
xpp3_min-1.1.4c.jar 
xstream-1.4.7.jar 

我的Tomcat的lib目錄包含:

annotations-api.jar 
catalina-ant.jar 
catalina-ha.jar 
catalina.jar 
catalina-storeconfig.jar 
catalina-tribes.jar 
ecj-4.5.jar 
el-api.jar 
jasper-el.jar 
jasper.jar 
jsp-api.jar 
ojdbc6-11.2.0.3.jar 
servlet-api.jar 
sqljdbc4-11.1.0.7.0.jar 
tomcat-api.jar 
tomcat-coyote.jar 
tomcat-dbcp.jar 
tomcat-i18n-es.jar 
tomcat-i18n-fr.jar 
tomcat-i18n-ja.jar 
tomcat-jdbc.jar 
tomcat-jni.jar 
tomcat-juli.jar 
tomcat-util.jar 
tomcat-util-scan.jar 
tomcat-websocket.jar 
websocket-api.jar 
沙发
0
0

不能確定準確的環境,但我幾乎可以肯定你會得到一些類庫的意外版本。如果在從Tomcat切換到WebSphere(或其他方式)之後發生問題,他們可能有不同版本的與slf4相關的東西(或其中一個庫有另一個缺失的庫)。大多數情況下,java的-verbose:class選項應該可用於挖掘從何處獲得類的內容

板凳
0
0

當您的代碼使用不同於您的環境提供的代碼版本進行編譯時,會出現此類錯誤。

public class A{ 
public void a(){ 
} 
} 

//newer version of module 
public class AVariant{ 
public void a(String b){ 
} 
} 

我沒那麼熟悉WebSphere,但這裏的問題是,WebSphere使用日誌框架的舊/更新或版本,這是不兼容你編譯應用程序的版本。您需要解決此依賴性衝突。

本指南可以幫助你:當你的應用程序試圖調用一個方法在早期版本的類,這是不可用的類的較新版本的情況 https://www.slf4j.org/legacy.html

+0

感謝您的回答,我們知道NoSuchMethodError如何發生,但我的問題是爲什麼我們必須刪除該jar。 – 5A9U

地板
0
0

NoSuchMethod錯誤。基本上這可能是由於升級/降級或進入新環境時版本衝突造成的。

的深入描述在這裏。

Docker Image of Jersey Web Application

檢查應用程序庫VS服務器提供的庫不會是在這裏使用。重要的是JVM類加載器在運行時加載的庫/類。

分析哪些是通過java.class.path系統屬性加載的類https://docs.oracle.com/javase/tutorial/essential/environment/sysprop.html

System.getProperty("java.class.path"); 

然後將它們與你的Tomcat版本提供的罐子進行比較。

+0

類路徑中沒有任何變化。它仍然是一樣的。我們在默認情況下在tomcat的classpath中使用了bootstrap.jar和tomcat-juli.jar。 – 5A9U

+0

你能發佈錯誤日誌嗎? –