java调用linux命令切换目录

java调用linux命令切换目录,第1张

pwd命令 pwd命令用于显示用户当前所处的工作目录,格式为“pwd [选项]”。

2

cd命令 cd命令用于切换工作路径,格式为“cd [目录名称]”。 这个命令应该是最常用的一个Linux命令了。可以通过cd命令迅速、灵活地切换到不同的工作目录。除了

分类: 电子数码 >> 其他数码产品

问题描述:

我在eclipse中调试没有任何问题,现在打成jar包后运行出现错误。原因就是我在程序中使用了一些(在工程目录下的gaiji目录下),打成jar包后它好像是在包中找这些资源,我现在要作成这个样子:就是和jar文件同一目录下有一个目录gaiji,执行这个jar调用gaiji目录下的那些,这个路径该怎么设置呢。我现在的路径是用URL imgURL = getClass()getResource("/gaiji" + gaiji1FILENAME);ImageIcon icon = new ImageIcon(imgURL);Image img = icongetImage();

解析:

在java中,经常要定位某些文件的位置,为了能让程序与物理位置无关,就要使用相对路径。但java中使用相对路径总会遇到一些很麻烦的问题,就是到底相对于哪个参照物的问题。因为我们平时使用相对路径总是相对当前工作目录而言的,但有时需求并非如此。比如,要在一个开发包中使用相对路径,却不知道开发包被其他程序调用时的所在路径,而且特别是在web应用中,很难确定某个文件在整个应用中的相对路径。

所以使用相对路径最好的办法就是让路径相对的参照物是我的开发包或我的应用本身的东西,最好的就是用我开发包中的类的class文件。只要知道了某个class文件的绝对路径,就可以以它为参照物,使用相对路径来定位其他任何文件了。

为了实现这个想法,我写了这个Path类,这个类提供了两个静态公共方法,一个用来定位类的class文件的位置,另一个以某个类为参照物来定位一个相对路径。使用这两个方法,我们可以完全不必理会应用的当前工作路径,随心所欲的根据自己的位置来寻找任何文件。比如在编写某个功能性开发包时,就可以完全不用管调用这个开发包的应用的路径情况,而仅仅根据开发包本身的位置来定位文件,这样很好的实现了封装性,将文件的路径处理完全封闭在了开发包自身之内。

以下是Path类的源代码:

创建日期 2004-11-22

更改所生成文件模板为

窗口 > 首选项 > Java > 代码生成 > 代码和注释

/

package mytools;

import javaioFile;

import javaioIOException;

import javaMalformedURLException;

import javaURL;

import javasecurityCodeSource;

import javasecurityProtectionDomain;

/

@author 由月

这个类提供了一些根据类的class文件位置来定位的方法。

/

public class Path {

/

获取一个类的class文件所在的绝对路径。 这个类可以是JDK自身的类,也可以是用户自定义的类,或者是第三方开发包里的类。

只要是在本程序中可以被加载的类,都可以定位到它的class文件的绝对路径。

@param cls

一个对象的Class属性

@return 这个类的class文件位置的绝对路径。 如果没有这个类的定义,则返回null。

/

public static String getPathFromClass(Class cls) throws IOException {

String path = null;

if (cls == null) {

throw new NullPointerException();

}

URL url = getClassLocationURL(cls);

if (url != null) {

path = urlgetPath();

if ("jar"equalsIgnoreCase(urlgetProtocol())) {

try {

path = new URL(path)getPath();

} catch (MalformedURLException e) {

}

int location = pathindexOf("!/");

if (location != -1) {

path = pathsubstring(0, location);

}

}

File file = new File(path);

path = filegetCanonicalPath();

}

return path;

}

/

这个方法可以通过与某个类的class文件的相对路径来获取文件或目录的绝对路径。 通常在程序中很难定位某个相对路径,特别是在B/S应用中。

通过这个方法,我们可以根据我们程序自身的类文件的位置来定位某个相对路径。

比如:某个txt文件相对于程序的Test类文件的路径是//resource/testtxt,

那么使用本方法PathgetFullPathRelateClass("//resource/testtxt",Testclass)

得到的结果是txt文件的在系统中的绝对路径。

@param relatedPath

相对路径

@param cls

用来定位的类

@return 相对路径所对应的绝对路径

@throws IOException

因为本方法将查询文件系统,所以可能抛出IO异常

/

public static String getFullPathRelateClass(String relatedPath, Class cls)

throws IOException {

String path = null;

if (relatedPath == null) {

throw new NullPointerException();

}

String clsPath = getPathFromClass(cls);

File clsFile = new File(clsPath);

String tempPath = clsFilegetParent() + Fileseparator + relatedPath;

File file = new File(tempPath);

path = filegetCanonicalPath();

return path;

}

/

获取类的class文件位置的URL。这个方法是本类最基础的方法,供其它方法调用。

/

private static URL getClassLocationURL(final Class cls) {

if (cls == null)

throw new IllegalArgumentException("null input: cls");

URL result = null;

final String clsAsResource = clsgetName()replace('', '/')concat(

"class");

final ProtectionDomain pd = clsgetProtectionDomain();

javalangClass contract does not specify

if 'pd' can ever be null;

it is not the case for Sun's implementations,

but guard against null

just in case:

if (pd != null) {

final CodeSource cs = pdgetCodeSource();

'cs' can be null depending on

the classloader behavior:

if (cs != null)

result = csgetLocation();

if (result != null) {

Convert a code source location into

a full class file location

for some mon cases:

if ("file"equals(resultgetProtocol())) {

try {

if (resulttoExternalForm()endsWith("jar")

|| resulttoExternalForm()endsWith("zip"))

result = new URL("jar:"concat(

resulttoExternalForm())concat("!/")

concat(clsAsResource));

else if (new File(resultgetFile())isDirectory())

result = new URL(result, clsAsResource);

} catch (MalformedURLException ignore) {

}

}

}

}

if (result == null) {

Try to find 'cls' definition as a resource;

this is not

document.d to be legal, but Sun's

implementations seem to allow this:

final ClassLoader clsLoader = clsgetClassLoader();

result = clsLoader != null clsLoadergetResource(clsAsResource)

: ClassLoadergetSystemResource(clsAsResource);

}

return result;

}

public static void main(String[] args) {

try {

Systemoutprintln(getPathFromClass(Pathclass));

Systemoutprintln(getFullPathRelateClass("/", Pathclass));

} catch (Exception e) {

eprintStackTrace();

}

}

}

程序运行结果:

C:\java\>java Path

C:\java\\Pathclass

C:\

1,本质上还是获取的WebContent/images下的,之所以在这,是因为eclipse的设置;这个/的/表示网站根目录,相当于tomcat的webapps目录

2,java中/ 相当于userdir,在有的eclipse中默认是安装目录

3,这个一点问题没有,java虚拟机在哪个盘符运行,哪个盘符就是根目录

可以使用RandomAccessFile类。例如要从100字节开始输出工作目录下的datatxt文件的类容。

package konwtest1;

import javaioFileNotFoundException;

import javaioIOException;

import javaioRandomAccessFile;

public class Test1

{

public static void main(String[] args)

{

long pos = 100;

try

{

String str = "";

RandomAccessFile randomAccessFile = new RandomAccessFile("datatxt", "rw");

randomAccessFileseek(pos);//将文件流的位置移动到pos字节处

while( (str = randomAccessFilereadLine()) != null)

{

Systemoutprintln(str);

}

randomAccessFileclose();

} catch (FileNotFoundException e)

{

eprintStackTrace();

} catch (IOException e)

{

eprintStackTrace();

}

}

}

要看采用什么模式,如果是MVC模式的,就按照模型,视图,控制器来划分包名,可以有个工具类的包。学习java推荐选择千锋教育。千锋教育拥有多年IT培训服务经验,采用全程面授高品质、高体验培养模式,

Java培训出来如何找高薪工作:

1获得程序员式思维方式的快速建立知识体系。

2找到一个合适的方法来实现技术进入,比如注册一个声誉良好的培训机构。

3阅读一本书仍然是系统地学习知识的最佳方式,尽管在技术博客或社区论坛上有很多大神。

4初学者应该积极地提问,依靠别人的经验并不可耻,关键是要用最少的时间来获得最多的收入。

5根据大多数受访者的经验,阅读源代码是最快的增长途径。

6HTML5PythonJavaCGolang等都是强大而普遍的入门语言,在精通之后再学其他。

想要了解更多关于java的相关信息,推荐咨询千锋教育。千锋教育成立于2011年1月,立足于职业教育培训领域,公司现有教育培训、高校服务、企业服务三大业务板块。教育培训业务分为大学生技能培训和职后技能培训;高校服务业务主要提供校企合作全解决方案与定制服务;企业服务业务主要为企业提供专业化综合服务。公司总部位于北京,目前已在20个城市成立分公司,现有教研讲师团队300余人。

eclipse运行java后所产生的文件,都是放在eclipse的工作空间目录下的,查看工作空间的目录有三种方式。如下:

1、选择项目,点鼠标右键,选择属性,选择Resource,右边的Lacation就是你的本工程路径。

2、选择项目,在导航栏,选择“file"中的"Switch Workspace”,也能查看你的工作空间路径。

3、每次启动时,如果没有勾选默认工作空间,你也能看到你的工作空间路径。

以上就是关于java调用linux命令切换目录全部的内容,包括:java调用linux命令切换目录、java高手请进!、windos系统下 javaweb工程根目录在哪里等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9329073.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存