我刚接触stackoverflow,所以如果我误解了一些Q&amp; A规则我可以随意指出任何错误,而且对于我的英语,因为我不是英语母语人士。< / p>
现在,虽然我已经编程好几年了,但是我已经被迫在这个项目中使用旧版本的JDeveloper,我有一些初学者问题,因为我习惯了IDE做所有艰苦的工作。
我的目标是,将我的项目编译成jar并在服务器中执行它。
到目前为止,我让我的应用程序运行并运行我的IDE,即JDev 9.0.3.2(OLD)和Java版本是1.3.1_01,但是当我尝试编译为jar文件由于某种原因lib没有不来。
我的代码(部分是ofc):
Connection con = null;
public Depositos() throws Exception {
System.out.println("Beginning ORACLE DB connection");
try {
String connstr="jdbc:oracle:thin:"+"@<hostname>"+":"+"<port>"+":"+"<SID>";
System.out.println("connstr ok");
Class.forName("oracle.jdbc.driver.OracleDriver");
System.out.println("Class.forName ok");
con = DriverManager.getConnection (connstr, "cic", "managercic");
System.out.println("Connection successful");
} catch (ClassNotFoundException e) {
throw new Exception("DB connection error "+e.getMessage());
}
}
我怀疑问题已经结束了,更准确地说是在这里: “Class.forName(”oracle.jdbc.driver.OracleDriver“);”
我的程序是: 在Depositos.java文件夹
我跑了这个:
javac -verbose Depositos.java -classpath C:\oracle\ora92\jdbc\lib\classes12.jar
输出结果表明一切正常。
jar cfmv0 Depositos.jar MANIFEST.MF Depositos.class C:\oracle\ora92\jdbc\lib\classes12.jar
我的MANIFEST.MF包含:
Manifest-Version: 1.0
Created-By: Oracle JDeveloper 10.1.3.4.0
Main-Class: Depositos.Depositos
当我使用:
运行src文件夹中的代码时java oic.OIC
我的输出是:
Beginning ORACLE DB connection
connstr ok
Exception in thread "main" java.lang.Exception: DB connection error oracle.jdbc.driver.OracleDriver
at Depositos.Depositos.<init>(Depositos.java:47)
at Depositos.Depositos.main(Depositos.java:98)
这使我得出结论,错误在我上面说的那一行。
而且我不明白我做错了什么,我从其他论坛上读了这么多帖子,我不知道什么是正确的举动。
我尝试了几种编译命令组合。
感谢您的帮助。
答案 0 :(得分:0)
您可以将oracle jar添加到jar中,并在清单中放置一个“Class-path”属性。
Manifest-Version: 1.0
Created-By: Oracle JDeveloper 10.1.3.4.0
Main-Class: Depositos.Depositos
Class-path: <path to jar inside your jar>
但是从内存来看,如果您的jar已签名,您还需要在其中签名。