Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/363.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/8/qt/6.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
Mac上的类路径,以及Mac如何查找mysql-connector-java-bin.jar_Java_Jdbc_Classpath - Fatal编程技术网

Mac上的类路径,以及Mac如何查找mysql-connector-java-bin.jar

Mac上的类路径,以及Mac如何查找mysql-connector-java-bin.jar,java,jdbc,classpath,Java,Jdbc,Classpath,Mac OS X 10.6上有默认类路径吗?当我echo$CLASSPATH时,不会显示任何内容。在我的.profile中,我只看到设置了PATH变量。我的问题是,我的servlet似乎找不到合适的驱动程序来连接mysql服务器。我在MYSQL服务器上使用了Eclipse,以及Glassfish v3和MAMP 有几种方法可以让Java在Mac OS X上看到JAR: 将其放在/Library/Java/Extensions中 创建/编辑CLASSPATH环境变量 使用-cp选项显式指定类路径

Mac OS X 10.6上有默认类路径吗?当我
echo$CLASSPATH
时,不会显示任何内容。在我的
.profile
中,我只看到设置了
PATH
变量。我的问题是,我的servlet似乎找不到合适的驱动程序来连接mysql服务器。我在MYSQL服务器上使用了
Eclipse
,以及
Glassfish v3
MAMP

有几种方法可以让Java在Mac OS X上看到JAR:

  • 将其放在/Library/Java/Extensions中
  • 创建/编辑CLASSPATH环境变量
  • 使用-cp选项显式指定类路径。
默认情况下不设置CLASSPATH环境变量,但是,如果您选择设置,可以对其进行设置。但是,请注意,您在
~/.profile
中设置的任何环境变量只会在终端会话中生效,不会影响任何GUI应用程序。如果要设置环境变量以使其影响GUI应用程序,可以创建一个名为
~/.MacOSX/environment.plist
的文件,其中包含环境变量。对该文件所做的任何更改将在您下次登录时生效


正如已经观察到的,将JAR放在extensions文件夹中或修改CLASSPATH环境变量通常是不好的主意,因为它们可能导致依赖地狱。更好的方法是将jar与工件捆绑在一起,并适当地设置元数据,以便它们位于工件的类路径上。如果您使用来构建您的工件,您可以让它自动下载并捆绑任何第三方依赖项,并为您的工件设置适当的类路径

Donot使用
CLASSPATH
环境变量。这是便携性问题。整个环境变量都是Sun公司的错误。它只对初学者有用,但在现实世界中肯定不行。这只会让发起者在事后更加困惑。此外,appservers(和IDE)完全忽略了这个环境变量。不要将库放入JRE或JDK库中。这也是便携性问题。如果您升级JRE/JDK或在其他地方运行该应用程序,它将不再工作


在webapplications中,您通常只需将特定于webapp的第三方库放到
webapp/WEB-INF/lib
中。此文件夹由webapp的默认类路径覆盖。如果这些库相当特定于appserver(例如,创建由appserver管理的JNDI数据源需要JDBC驱动程序),则需要将它们放入
appserver/lib
。此文件夹由appserver的默认类路径覆盖。对于Glassfish,您需要更具体地将其放在特定于域的
/lib
文件夹中,例如
Glassfish/domains//lib

我为此做了很多努力。尝试将appserv-rt.jar(位于Glassfish lib目录)添加到项目的构建路径中。(如果您想避免这种情况,我不会拖拽它的所有依赖项,首先用jar创建一个库,然后将库添加到构建路径。

前两个建议是不好的建议,第三个建议在使用Servlet容器时不是一个真正的选项,您应该将.jar文件包含在您要删除的.war的lib目录中部署到您的Servlet容器。您不需要拥有类路径,因为它会使您的计算机变得非常脆弱,并且充满.jar冲突。好的,当我在Netbean上开发时,我可以看到我的War文件,但在eclipse上看不到。eclipse是否创建War文件进行部署?如果是,我将jar文件放在哪里?在WEB-INF/lib中?设置类路径时也是如此leive您需要在users environment.plist(/users/username/.MacOSX/environment.plist)中执行此操作除了你的.bash_配置文件之外,或者代替你的.bash_配置文件。可能会为此而担心,但我似乎不得不对svn javahl及其依赖项这样做。只要告诉Eclipse将.jar文件添加到WEB-INF/lib目录中,如果你是用Eclipse构建的,你不需要处理Maven