如何查找java路径?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何查找java路径?相关的知识,希望对你有一定的参考价值。

我下了一个我的世界1.6.2可是每次启动游戏都说“java路径有误”,然后就需要自己把电脑上的java路径输入进去!可我不知道,怎么查看java路径啊?麻烦说的通俗,详细点。我是电脑盲,弄不好。

1、要解决问题之前,我们需要下载java这个软件,在浏览器上搜索,记住下载的具体位置,方便下一步的操作。

2、接着我们需要安装Java在电脑上,我们可以看到它储存的文件夹,下载完毕后进行安装,这时候我们一定要注意,在安装时要勾选安装界面左下角更改目标文件夹,然后进行安装。

3、我们需要改换一下改文件存储的路径,点击打开目标文件选择界面,点击更改,创建一个名为Java名字的新文件夹,方便我们寻找,点击确定,进行下一步。

4、安装完毕后,我们就打开我的世界游戏软件,在游戏启动器界面,打开设置界面浏览。

5、打开之前创建的文件,找到自己刚才安装Java时的文件夹,选择Java文件夹和jre7文件夹,并且我们可以看到里面有个javaw.exe目标,确定之后保存,整个路径保存就算解决成功,打开游戏,就能快速的进入游戏。

Java是一种可以撰写跨平台应用程序的面向对象的程序设计语言。Java 技术具有卓越的通用性、高效性、平台移植性和安全性,广泛应用于PC、数据中心、游戏控制台、科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。

参考技术A 你安装jdk了吗?如果安装了,那么去c,d盘直接找名字叫java的文件夹就行,如果是win7的话是自带jre的,jdk是开发用环境,jre是java类程序需要运行的环境追问

jdk是什么?我找到了C:\WINDOWS\java可是在我的世界里设置后点击启动游戏没反应。

追答

C:\WINDOWS\java\jdk1.6.0_10\bin 看下你的java路径下还有没有我给你发的结构,如果有的话,把这个路径设置下试试

参考技术B 运行CMD.exe,转到各个盘的根目录,再执行 dir /a /s java.exe追问

看不懂

追答

好好学习,会看得懂的。

参考技术C 亲,首先需要检查你的系统是否安装了Java环境,可以在“开始”》"运行"》输入“cmd”弹出命令窗口,在命令窗口中输入java或者javac后按回车键,发现有很多提示符命令。那么证明你的Java环境是安装成功了的。如果你不清楚你当初的安装路径,那么可以打开“我的电脑”,在搜索栏中输入“java” 按回车就会搜索出Java的安装目录路径啦。
如果没有安装Java环境的话,可能会提示“ Java 不是内部或外部命令,也不是可运行的程序或批处理文件”等提示信息。这样的话,就需要你安装Java虚拟机了,配置Java环境了。
当然,如果你确定已经安装了Java环境,但是在命令行中键入"Java"或者"Javac" 也是提示命令错误的话,那可能就是你的环境变量配置的有问题了。如果需要配置环境变量的话,(由于配置环境变量的答案在网上可以随处找到,我在这里也就不啰嗦了。)你可以在百度中输入“配置java环境变量”就可以找到答案了。当然,如果你实在找不到或者是在配置或者安装过程中遇到什么疑难不会的,都是可以继续呼叫我的哦!
祝你游戏愉快!追问

我的电脑搜索栏在哪里啊?

追答

搜索输入框在电脑地址路径的右侧 或者按 Win + F 键搜索即可!

追问

我搜索出了很多怎么办啊?

追答

QQ 295273987

参考技术D Win + F 打开搜索一下

查找从哪里加载 java 类

【中文标题】查找从哪里加载 java 类【英文标题】:Find where java class is loaded from 【发布时间】:2010-09-18 15:43:06 【问题描述】:

有谁知道如何以编程方式找出 java 类加载器实际从哪里加载类?

我经常从事大型项目,其中类路径变得很长,手动搜索并不是一个真正的选择。我最近有一个problem,其中类加载器加载了一个不正确的类版本,因为它位于两个不同位置的类路径中。

那么如何让类加载器告诉我实际的类文件来自磁盘的哪个位置?

编辑: 如果类加载器实际上由于版本不匹配(或其他原因)而无法加载类怎么办,无论如何我们可以找出什么文件它在阅读之前尝试阅读?

【问题讨论】:

【参考方案1】:

假设您正在使用一个名为 MyClass 的类,以下应该可以工作:

MyClass.class.getClassLoader();

能否获得 .class 文件的磁盘位置取决于类加载器本身。例如,如果您使用的是 BCEL 之类的东西,那么某个类甚至可能没有磁盘表示。

【讨论】:

这会返回用于加载类的ClassLoader,不是吗?它没有找到 .class 文件在哪里? 不,它没有。类加载器实际上可以引用完全不同的类路径——这意味着它将完全无法获取实际的类位置。【参考方案2】:

看看这个类似的问题。 Tool to discover same class..

我认为最相关的障碍是您是否有自定义类加载器(从 db 或 ldap 加载)

【讨论】:

【参考方案3】:

这是一个例子:

package foo;

public class Test

    public static void main(String[] args)
    
        ClassLoader loader = Test.class.getClassLoader();
        System.out.println(loader.getResource("foo/Test.class"));
    

打印出来的:

file:/C:/Users/Jon/Test/foo/Test.class

【讨论】:

为了减少多余的输入,也可以使用较短的版本:Test.class.getResource("Test.class"),它不会重复包名。 如果类被编译了怎么办,例如来自 .groovy 文件? @meriton:或者,为了在重构中存活:Test.class.getResource(Test.class.getSimpleName() + ".class") 对于BouncyCastleProvider,需要完整的包名。 getClassLoader() 可以返回null。请参阅here 了解对此方法的扩展以处理该问题。【参考方案4】:
getClass().getProtectionDomain().getCodeSource().getLocation();

【讨论】:

是的,尽管它不适用于已安装的安全管理器且没有所需的权限。 仅供参考,NPE = 空指针异常。 HTH! 只要你有一个实例的引用,这个方法是首选的,因为你可以从两个不同的位置加载同一个类。 从 Java 9+ 模块调用时也不起作用(当然你在 2008 年不可能知道)。【参考方案5】:

这是我们使用的:

public static String getClassResource(Class<?> klass) 
  return klass.getClassLoader().getResource(
     klass.getName().replace('.', '/') + ".class").toString();

这将取决于 ClassLoader 实现: getClass().getProtectionDomain().getCodeSource().getLocation()

【讨论】:

【参考方案6】:

另一种找出类从何处加载(无需操作源)的方法是使用以下选项启动 Java VM:-verbose:class

【讨论】:

这个效果很好,并且不存在处理带有 null ClassLoader 的类的问题 @ries 如果不需要以编程方式执行此操作,这绝对是要走的路,它确实解决了我的问题。但是,OP 专门询问了如何以编程方式执行此操作。【参考方案7】:

当对象的ClassLoader 注册为null 时,Jon 的版本失败,这似乎暗示它是由引导ClassLoader 加载的。

这个方法可以解决这个问题:

public static String whereFrom(Object o) 
  if ( o == null ) 
    return null;
  
  Class<?> c = o.getClass();
  ClassLoader loader = c.getClassLoader();
  if ( loader == null ) 
    // Try the bootstrap classloader - obtained from the ultimate parent of the System Class Loader.
    loader = ClassLoader.getSystemClassLoader();
    while ( loader != null && loader.getParent() != null ) 
      loader = loader.getParent();
    
  
  if (loader != null) 
    String name = c.getCanonicalName();
    URL resource = loader.getResource(name.replace(".", "/") + ".class");
    if ( resource != null ) 
      return resource.toString();
    
  
  return "Unknown";

【讨论】:

【参考方案8】:

仅编辑第一行:Main.class

Class<?> c = Main.class;
String path = c.getResource(c.getSimpleName() + ".class").getPath().replace(c.getSimpleName() + ".class", "");

System.out.println(path);

输出:

/C:/Users/Test/bin/

也许风格不好,但效果很好!

【讨论】:

【参考方案9】:

这种方法适用于文件和 jar:

Class clazz = Class.forName(nameOfClassYouWant);

URL resourceUrl = clazz.getResource("/" + clazz.getCanonicalName().replace(".", "/") + ".class");
InputStream classStream = resourceUrl.openStream(); // load the bytecode, if you wish

【讨论】:

【参考方案10】:

通常,我们不使用硬编码。我们可以先获取className,然后使用ClassLoader获取class URL。

        String className = MyClass.class.getName().replace(".", "/")+".class";
        URL classUrl  = MyClass.class.getClassLoader().getResource(className);
        String fullPath = classUrl==null ? null : classUrl.getPath();

【讨论】:

需要为:URL classUrl = MyClass.class.getClassLoader().getResource("/" + className); MyClass.class 是重要的部分 - getClass() 可以返回代理!然后你可以得到像 MyClass$$EnhancerBySpringCGLIB$$a98db882.class 这样的名字和空 URL。【参考方案11】:

简单的方法:

System.out.println(java.lang.String.class.getResource(String.class.getSimpleName()+".class"));

输出示例:

jar:file:/D:/Java/jdk1.8/jre/lib/rt.jar!/java/lang/String.class

或者

String obj = "简单测试"; System.out.println(obj.getClass().getResource(obj.getClass().getSimpleName()+".class"));

输出示例:

jar:file:/D:/Java/jdk1.8/jre/lib/rt.jar!/java/lang/String.class

【讨论】:

以上是关于如何查找java路径?的主要内容,如果未能解决你的问题,请参考以下文章

Linux如何查看JDK的安装路径

Linux如何查看JDK的安装路径 --转

java 项目如何获取项目所在的物理根路径

java如何拼接linux目录下文件路径

java如何获得linux下web路径

java 如何在指定文件夹下查找文件