我是一个新的Mac OSX应用程序开发人员,正在学习Xcode和OSX开发的变幻莫测。如果你愿意,跳过这一段的其余部分,跳到下一段。这只是一个小小的背景--在过去的30年里,我一直以这样或那样的方式在计算机领域工作,我是一名软件开发人员,有25年之久。我正在从Windows开发工具过渡到OSX。
好的-我正在写一个简单的(?)OSX应用程序,将在Mac迷你服务器上运行。该服务器将充当iPad iOS应用程序和Windows Server2008上基于Windows的MS SQL server数据库之间的“中间件”,
我决定使用SourceForge的jTDS驱动程序。我下载了SQL应用程序,它允许你选择SQuirreL驱动程序,设置必要的参数,并连接到数据库。像冠军一样工作!我想对我的应用程序做同样的事情,但我不知道如何在我的应用程序中包含.jar文件,然后加载和运行它。如果您能提供适当的文档,特别是源代码示例,我将非常感激。有一个doc文件是关于在Xcode中使用Java ODBC驱动程序的,但它已经过时了,不再适用于Xcode的当前版本。
任何帮助都将不胜感激,尤其是源代码示例。TIA并向所有纽约的OSX开发人员致以最好的问候。
发布于 2012-03-24 07:18:07
您可以在Java中装入一个类,而不需要将它放在(初始)类路径中。
您需要使用相关的.jar文件创建一个URLClassloader,加载该类并创建一个新实例。然后,您可以使用该实例创建新的连接。
就像这样
URL[] libs = new URL[1];
File jarFile = new File("/path/to/jtds.jar");
libs[0] = jarFile.toURI().toURL();
URLClassLoader loader = new URLClassLoader(libs, ClassLoader.getSystemClassLoader());
Class drvClass = this.classLoader.loadClass("net.sourceforge.jtds.jdbc.Driver");
Driver drv = (Driver)drvClass.newInstance();
Properties props = new Properties();
props.put("user", "my_db_user");
props.put("password", "very_secret_password");
Connection con = drv.connect("jdbc:jtds:sqlserver://someserver", props);作为另一种选择,我认为您也可以向DriverManager注册实例,然后调用DriverManager.getConnection()。但我不能完全确定这是否有效。直接在驱动程序实例上调用connect()肯定是有效的。
发布于 2012-03-24 03:13:19
它在SQL Squirrel中工作,因为您将JAR放在它的/lib目录中并启动它。SQL Squirrel是一个Java Swing应用程序。它假设其/lib目录中的所有JAR都在CLASSPATH中,因此当Java JVM启动时,它会找到jTDS驱动程序JAR和Bob的your叔叔。
您必须对X-code执行类似的操作:告诉它在哪里可以找到第三方JAR,并将jTDS JAR放在那里。
在一个细节上我有点困惑:您编写了"Java ODBC驱动程序“。你指的是"Java JDBC驱动程序“吗?
https://stackoverflow.com/questions/9844990
复制相似问题