java 命令行调用,更改当前路径,程序运行出错
自己的源程序是在F:\parser\ParserDemo.java,
使用命令行:javac -classpath stanford-parser.jar;. ParserDemo.java编译,
命令行:java -cp stanford-parser.jar;. Parser运行
都没有问题。
但是当我在c++程序中使用用命令行(java -cp stanford-parser.jar;. Parser)调用改程序就会出错。提示:java.lang.NoClassDefFoundError:...
后来发现只要更改命令行当前路径就会出错,猜测源代码路径不多,添加一个路径
java -cp F:\\parser\\stanford-parser.jar;f:\\parser; ParserDemo
再试一切ok。
注意:在程序中如果有使用相对路径的文件,比如打开一个文件aaa.txt,他正好在f:\parser目录下,当你从命令行运行程序时,如果当前路径不在f:\parser,那么就会报错,提示找不到该文件,所以要在别的地方调用该程序,最好使用绝对路径。
相关文档:
在成功实现Java调用C++之后,接下来想到能否通过JNA实现Java调用Fortran,今天试验了一下,还是比较容易的。
网上有一个Java调用F95的例子,但是我考虑不仅要实现F95的调用,还要实现F77的调用,所以费了一些周折。
问题的关键在于F77为过程名自动添加了一个尾部的下划线,所以sub1这个过程,到Java一端,就变成了sub1_, ......
public class MyEnumTestMain {
public enum MyenumTest{red,blue,green,black}//定义枚举类型
public static void main(String[] args) {
MyenumTest mt = MyenumTest.red;//red相当于枚举的静态属性
switch(mt){
case red:
System.out.println("red");
break;
case blue:
......
实不相瞒,Java是我见过的执行效率最低的程序设计语言,前不久在CSDN论坛上有个评测,计算9999的阶乘,同样的循环算法,Java的耗时是.NET的5倍。我以前很喜欢Serv-U,自从它用Java重写之后我就再也没用过,实在是太慢了,我宁可用IIS搭建FTP,虽然IIS搭建FTP在权限管理上很不灵活。
我有个同学,他是搞Java的,他给我说&ld ......
public static boolean isCheckN(String pInput) {
String regEx = "^[0-9]+$";
Pattern p = Pattern.compile(regEx);
Matcher m = p.matcher(pInput);
......