Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java类路径组装是如何工作的?_Java_Maven_Ant_Classpath - Fatal编程技术网

Java类路径组装是如何工作的?

Java类路径组装是如何工作的?,java,maven,ant,classpath,Java,Maven,Ant,Classpath,我一直认为类路径是理所当然的,也就是说,它是eclipse、maven、ant等为我处理的东西。显然,类路径是java“查找”与应用程序执行/集成的二进制类的地方 然而,有一些复杂的情况没有清楚地描述 1) java如何在类路径中“查找”类 2) 当查看类路径时,javac如何处理冲突 3) 当maven/ant等工具向类路径添加/忽略元素时,“幕后”会发生什么?这些工具是否简单地包装了javac程序 4) 最后:是否有一个“手动”复杂的java构建示例,它不使用现代构建工具(仅用于教育目的)而

我一直认为类路径是理所当然的,也就是说,它是eclipse、maven、ant等为我处理的东西。显然,类路径是java“查找”与应用程序执行/集成的二进制类的地方

然而,有一些复杂的情况没有清楚地描述

1) java如何在类路径中“查找”类

2) 当查看类路径时,javac如何处理冲突

3) 当maven/ant等工具向类路径添加/忽略元素时,“幕后”会发生什么?这些工具是否简单地包装了javac程序


4) 最后:是否有一个“手动”复杂的java构建示例,它不使用现代构建工具(仅用于教育目的)而可用?

man javac
man java
回答您的大部分问题

3) 他们只是简单地包装它

  • 类位置只是按完全限定名分层的。获取字节流取决于备份存储,它是否在文件系统(只读取文件)、jar(读取zip条目)和DB(获取字节)中。由类加载器将FQN转换为字节流

  • 依赖于实现。通常情况下,类路径上的第一名获胜,但这不是一个要求,它只是最简单的

  • 或多或少

  • 你是说像一个旧的基于
    的Makefile
    ?还是一个大的老蚂蚁?不知道你在问什么。它主要是建立类路径,这很容易,并创建工件


  • 谢谢你能详细介绍一下“创建工件”部分吗?@jayunit100一些东西,比如jar、war、ear、javadocs等等。这些东西都不太有趣(依我看),都是文书。