2016-05-24 15 views
1

Ich versuche, die copyInput Methode in meinem Code zu verwenden, aber scheint wie IntelliJ mir gesagt, dass das Verfahren nichtcopyInputStreamToFile Methode existiert nicht

FileUtils.copyInputStreamToFile (response.getEntity(). GetContent existiert() , heruntergeladene Datei);

Ich verwende den Code von hier

http://ardesco.lazerycode.com/index.php/2012/07/how-to-download-files-with-selenium-and-why-you-shouldnt/

Aber es scheint, wie die Methode existieren hier

https://commons.apache.org/proper/commons-io/javadocs/api-2.4/org/apache/commons/io/FileUtils.html

Ich bin mit Maven, habe ich versucht, mit 2.0, 2.1 , 2,4 ohne Glück

<dependency> 
     <groupId>commons-io</groupId> 
     <artifactId>commons-io</artifactId> 
     <version>2.2</version> 
    </dependency> 

Java 1.8

Hier ist die Fehlermeldung

Fehler: (201, 22) java: kann nicht finden, Symbol Symbol: Methode copyInputStreamToFile (java.io.InputStream, java.io.File) Lage: class

org.apache.commons.io.FileUtils

enter image description here

+1

Was ist die vollständige, genaue Fehlermeldung? –

+0

Welche Version von Apache 'commons.io' verwenden Sie? – Andreas

+0

@Andreas Ich habe die Frage bearbeitet, Sie können mehr Details darüber sehen – msiles

Antwort

2

Sie haben wahrscheinlich einen anderen (älteren) org.apache.commons.io.FileUtils auf Ihrem classpath, die die Probleme erklären würden Sie haben. Wahrscheinlich hat eine Ihrer Abhängigkeiten ein altes org.apache.commons:commons-io Artefakt im Klassenpfad. Aufgrund der groupId-Differenz betrachtet Maven sie als verschiedene Artefakte und setzt beide auf den Klassenpfad.

Wenn das ist, was wirklich passiert, können Sie explizit Maven verbieten diese transitive Abhängigkeit von unter anderem durch ein exclusion die Abhängigkeit hinzufügen, die die alte commons-io verweist (auch wenn es davon abhängt transitiv):

<dependency> 
    <groupId>offending.artifact.groupId</groupId> 
    <artifactId>offending.artifact.artifactId</artifactId> 
    <exclusions> 
    <exclusion> 
     <groupId>org.apache.commons</groupId> 
     <artifactId>commons-io</artifactId> 
    </exclusion> 
    </exclusions> 
</dependency> 
+0

Um die problematische Klasse in IntelliJ IDEA zu finden: Menü> Navigieren> Klasse> Typ 'FileUtils'> (möglicherweise muss" Nicht-Projektdateien einbeziehen "ausgewählt werden). Dies zeigt Ihnen die Liste der 'FileUtils'-Klassen, die in Ihrem Klassenpfad verfügbar sind, einschließlich der (möglicherweise transitiven) Abhängigkeit, die sie enthält. Wenn Sie bereits wissen, dass es definitiv aus 'org.apache.commons: commons: io' stammt, können Sie' dependency: tree' überprüfen, um festzustellen, welche Abhängigkeit es transitiv referenziert, obwohl dies auch mit IntelliJ maven-related möglich ist Eigenschaften. –

0

konnte ich die falsche Version mit den Menüoptionen finden Sie unter „um die säumige Klasse in IntelliJ IDEA zu finden: Menü> Navigieren> Klasse> Typ FileUtils“ gab es wie 4 FileUtils,

ich die richtige Version importiert auf Die JAR-Datei und es beheben das Problem, Danke @Anton.

Verwandte Themen