根據上面的標題,我需要幫助如何創建一個對象類來執行從Maven存儲庫下載.jar依賴關係。我有一個包含三個類的JAR文件,其中包括:CommandHandler.class; KeyStroke.class和Main.class和每個類都有它的依賴關係,需要下載免費的Maven倉庫。現在,我的問題是如何創建一個對象來執行在我的主程序邏輯開始執行之前執行所需的所有必要任務以下載依賴關係。因爲我相信沒有依賴關係,我的上面的類實現可能會遇到嚴重的異常...請高度讚賞任何幫助/建議/提示。提前致謝。我如何創建一個對象類來執行從Maven存儲庫下載.jar依賴關係
1
A
回答
0
如果你想動態負載在運行時一個罐子,你可以做以下operation.In下面的例子中,我假設依賴的jar爲spring-context
,像這樣:
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>4.3.1.RELEASE</version>
<scope>provided</scope>
</dependency>
和我得到的那個罐子的URL,http://maven.aliyun.com/nexus/content/groups/public/org/springframework/spring-context/4.3.1.RELEASE/spring-context-4.3.1.RELEASE.jar?spm=0.0.0.0.kG1Pdw&file=spring-context-4.3.1.RELEASE.jar
。
然後,有一個類Target
取決於類包含在spring-context
,並有一個方法被命名爲start
。
import org.springframework.format.datetime.DateFormatter;
public class Target {
private static DateFormatter dateFormatter;
public void start(){
System.out.println(this.getClass().getClassLoader());
dateFormatter=new DateFormatter();
System.out.println(dateFormatter);
}
}
接下來,我們編譯和包上面的代碼作爲命名target.jar
罐,其被存儲在D:\\test\\target.jar
。
而接下來,我們應該在另一個罐子,將調用該方法的Target
start
instance.The聲明一個類是BootStrap
BootStarp
類將動態負載由同一classloader
的target.jar
和spring-context
jar文件是一個URLClassLoader
實例,因爲這樣,Target
實例中的方法start
可以訪問在spring-context
中定義的DateFormatter
類。
public class BootStrap {
public static void main(String[] args) throws Exception{
URL url = new URL("http://maven.aliyun.com/nexus/content/groups/public/org/springframework/spring-context/4.3.1.RELEASE/spring-context-4.3.1.RELEASE.jar?spm=0.0.0.0.kG1Pdw&file=spring-context-4.3.1.RELEASE.jar");
URL url2= (new File("D:\\test\\target.jar").toURI().toURL());
URLClassLoader classLoader = new URLClassLoader(new URL[]{url,url2});
Class<?> clz = classLoader.loadClass("com.zhuyiren.Target");
Object main = clz.newInstance();
Method test = clz.getMethod("start");
test.invoke(main);
}
}
的最後,運行BootStrap
主要method.There是兩個重要的事情:
- 的
BootStrap
類和Target
類不屬於同一個jar文件。 target.jar
未存儲在CLASSPATH
路徑中。
,我們可以看到的結果:
[email protected]
[email protected]
這menas我們訪問的是spring-context
JAR文件中定義成功的DateFormatter
實例和spring-context
沒有存儲在CLASSPATH
,甚至沒有存儲在本地文件系統。
相關問題
- 1. 只在Maven中創建可執行jar與依賴關係
- 2. maven存儲庫和依賴關係下載
- 3. Maven Shade插件創建無依賴關係的JAR並從其他位置加載依賴關係JAR
- 4. 如何使用依賴關係罐創建可執行jar
- 5. 如何創建jar依賴關係?
- 6. Java Maven Jar依賴關係
- 7. 從ant lib/jar文件夾創建Maven依賴關係
- 8. 包括來自存儲庫依賴關係的備用jar
- 9. 來自SVN存儲庫的Maven依賴關係
- 10. 爲什麼我無法從maven下載任何依賴關係?
- 11. Maven - 如何驗證聲明存儲庫中的依賴關係?
- 12. Gradle ModuleVersionNotFoundException對於本地存儲庫中的Maven依賴關係
- 13. 如何從另一個文件加載Maven依賴關係?
- 14. Maven無法下載依賴關係
- 15. Maven碼頭下載依賴關係
- 16. Maven不下載作爲依賴項提到的jar的依賴關係
- 17. Maven:爲依賴項創建多個jar
- 18. 創建一個可執行的jar包括NetBeans中的所有依賴關係
- 19. 創建使用maven 3.1 Maven的依賴關係的插件不創建運行的JAR運行的JAR
- 20. Maven - 如何從明確設置的url下載依賴關係
- 21. Gradle下載依賴關係合併到maven本地存儲庫中?
- 22. Maven - 建立依賴關係
- 23. 我如何清除teamcity的maven依賴關係庫/緩存
- 24. 將maven依賴關係作爲一個單獨的.jar下載到
- 25. 從maven junit中的依賴關係jar中加載文件
- 26. 如何讓m2e-WTP與maven建立jar依賴關係?
- 27. keven taglib jar的Maven依賴關係
- 28. spark maven jar文件依賴關係
- 29. Maven配置的依賴關係(jar)
- 30. Maven測試jar包括依賴關係
我發現你對maven的工作原理知之甚少。一旦在POM文件中定義了依賴關係並進行安裝,所有必需的jar /依賴項就會從存儲庫中自動下載。 HTTPS://maven.apache。org/run-maven/ – Vaibs
@Vaibs請注意,我沒有創建Maven項目,我的項目是在javaFX中,所以我需要的是一個對象來執行所有的下載依賴項(以編程方式)。 – Divverest
感謝您糾正我們。請在你的問題中表示同樣的內容。 – Vaibs