0

我试图帮助我似乎没有人理解我的问题。我在 netbeans 中创建了一个项目,当我编译它时它会生成一个 jar 文件。它通过 IDE 运行得很好,但是当我尝试从命令提示符启动它时,它根本不做任何事情。它只是将光标移动到下一行以获取另一个命令?当我回显我的类路径时,这是我得到的结果

/opt/netbeans-7.1.2/ide/modules/ext/mysql-connector-java-5.1.13-bin.jar:/h/USERS/local/pagola/NetBeansProjects/mylib/dist/mylib.jar:/h/USERS/local/pagola/NetBeansProjects/EOPPrototype/build/classes 

我添加了包含 jar 中所有内容的类路径。我的清单文件包含主类(入口点),这就是它的样子

    Manifest-Version: 1.0
Ant-Version: Apache Ant 1.8.3
Created-By: 1.6.0_22-b04 (Sun Microsystems Inc.)
Class-Path: lib/mysql-connector-java-5.1.13-bin.jar lib/mylib.jar
X-COMMENT: Main-Class will be added automatically by build
Main-Class: eopprototype.EOPPrototype

所以我无法弄清楚我做错了什么?我是否需要在我的 PATH 变量中添加任何内容(可能是 java jdk bin 的东西)它是否无法找到 java 命令,因为它不知道在哪里寻找该可执行文件?

注意:我没有设置我的 PATH 和 LIBRARY PATH - 我需要这样做吗?这是 ac 风格的 shell 脚本

4

1 回答 1

1

先试试这个

如果您的清单不以换行符结尾,则可能会被忽略。查看清单需要换行符

否则我必须做出假设

如果该 JAR 文件包含您希望执行的方法,则您不需要lib/mylib.jar在清单中。所以删除它,所以它只列出. 然后您的清单将如下所示EOPPrototypepublic static void main(String[] args)mysql-connector-java-5.1.13-bin.jar

Manifest-Version: 1.0
Ant-Version: Apache Ant 1.8.3
Created-By: 1.6.0_22-b04 (Sun Microsystems Inc.)
Class-Path: lib/mysql-connector-java-5.1.13-bin.jar
X-COMMENT: Main-Class will be added automatically by build
Main-Class: eopprototype.EOPPrototype

然后假设你所有的代码都在 mylib.jar 中并且唯一的其他依赖 jar 是 mysql-connector-java-5.1.13-bin.jar,创建一个这样的目录结构

/h/USERS/temp/mylib.jar
/h/USERS/temp/lib/mysql-connector-java-5.1.13-bin.jar

然后像这样执行

cd /h/USERS/temp

java -cp .:mylib.jar eopprototype.EOPPrototype
于 2012-06-12T23:23:49.463 回答