前段时间我用Netbeans写了一些代码。我最终将代码移到了一个新的服务器上,我可以远程访问这个服务器,并且没有安装netbeans。我最近对这些代码做了一些修改,并使用这个命令
进行编译。javac -classpath /home/me/JSAP-2.1.jar /home/me/Fin2/src/fin2/Fin2.java /home/me/Fin2/src/fin2/CommandLine.java /home/me/Fin2/src/fin2/Reader.java /home/me/Fin2/src/fin2/Manager.java -Xlint
但是新代码似乎从未编译过。我得到的输出与进行更改之前相同。当我以前在旧服务器上遇到这个问题时,我会打开netbeans并将"主项目"重置为我试图运行的程序,从netbeans内部重新编译,它会工作得很好。如果不这样做,我不知道如何解决这个问题。
当我运行代码时,我使用
java -jar /home/me/NetBeansProjects/Fin2/dist/Fin2.jar [commandline args]
谁能提点建议?
您错过了IDE为您完成的一个步骤。您需要从类文件输出中创建jar
文件。参见http://docs.oracle.com/javase/tutorial/deployment/jar/build.htmlhttp://docs.oracle.com/javase/6/docs/technotes/tools/solaris/javac.html
由于没有添加-d,所以类文件位于源文件的目录中。让我们添加一个编译后的输出目录
rm -r /home/me/Fin2/build/
mkdir /homr/me/Fin2/build/
现在让我们将该文件夹添加到javac中,以便在该文件夹中创建类:
javac -Xlint -d /home/me/Fin2/build/ -classpath /home/me/JSAP-2.1.jar /home/me/Fin2/src/fin2/Fin2.java /home/me/Fin2/src/fin2/CommandLine.java /home/me/Fin2/src/fin2/Reader.java /home/me/Fin2/src/fin2/Manager.java
最后我们需要一个该输出的jar。jar文件基本上只是目录的一个zip文件。实际上,您可以将.jar文件作为zip文件打开。你还必须告诉它哪个类拥有你的主方法入口点。
jar cvfe /home/me/Fin2/dist/Fin2.jar [entry point] /home/me/Fin2/build/
现在,当您运行它时,运行新创建的jar:
java -jar /home/me/Fin2/dist/Fin2.jar [commandline args]