GVKun编程网logo

【java】获取项目资源路径(java 获取资源路径)

3

在本文中,我们将为您详细介绍【java】获取项目资源路径的相关知识,并且为您解答关于java获取资源路径的疑问,此外,我们还会提供一些关于###Errorqueryingdatabase.Cause:

在本文中,我们将为您详细介绍【java】获取项目资源路径的相关知识,并且为您解答关于java 获取资源路径的疑问,此外,我们还会提供一些关于### Error querying database. Cause: java.lang.IllegalArgumentException: invalid comparison: cn.xiaojian.blog.po.BlogType and java.lang.String ### Cause: java.lang.IllegalArgumentException: ...、'java.lang.NoClassDefFoundError 由 java.lang.ClassNotFoundException 引起的 Ljava/util/Base64 解析失败 未找到类“java.util.Base64”、(Java 学习笔记) Java Threading (Java 线程)、Android 应用程序开发支持哪些 Java 版本我可以使用 1.8 以上的 java 版本还是 java 8的有用信息。

本文目录一览:

【java】获取项目资源路径(java 获取资源路径)

【java】获取项目资源路径(java 获取资源路径)

 目资源路径分两种,一种是普通Java项目的资源路径,另一种是JavaEE项目的资源路径。

 

  • 获取Java项目的包(源码下的包 或者 jar包)的资源路径

 

Java代码  

收藏代码

  • // 方法1:通过this.getClass().getResoure("")获取, 有"/"开头表示以bin目录为根目录, 没"/"开头表示以当前文件夹为根目录   
  • this.getClass().getResource("/").getFile();  
  •           
  • // 方法2:通过this.getClass().getClassLoader().getResource(""), 不允许以"/"开头, 默认以bin目录为根, 类似方法1中以"/"开头的情况  
  • this.getClass().getClassLoader().getResource("").getFile();  
  •           
  • // 方法3:通过ClassLoader.getSystemResource("")获取, 不允许以"/开头", 同上  
  • ClassLoader.getSystemResource("").getFile();  
  •           
  • // 方法4:通过Thread.currentThread().getContextClassLoader().getResource("")获取, 同上【推荐】  
  • Thread.currentThread().getContextClassLoader().getResource("").getFile();  
  •           
  • // 方法5:通过new File("bin").getCanonicalPath()获取, 有"/"开头, 则以系统盘为根, 没"/"开头, 表示以bin目录为根   
  • new File("bin").getCanonicalPath();  
  •           
  • // 方法6:通过System.getProperty("user.dir") + File.separator + "bin"来获取(不推荐)  
  • System.getProperty("user.dir") + File.separator + "bin";  
  •        据说方法4的系统兼容性最好,所以推荐第4种方法获取资源路径。

     

        

     

     

    • 获取JavaEE项目的资源路径

        对于获取JavaEE中的资源,其实就是获取WEB-INF目录的父目录下的资源,而且src的源码编译后的class文件,也会存放在WEB-INF/classes文件夹下,所以获取JavaEE资源的方法,也适用于获取Java普通资源,方法如下:

    Java代码  

    收藏代码

  • // getRealPath()方法中的参数, 是否以"/"开头效果都是一样的, 都是以WEB-INF目录的父目录为根目录进行查找  
  • request.getServletContext().getRealPath("");  
  •  

     

     

     

    总结:

    1. 通过getClassLoader().getResource()的方法,只能获取package(包括jar包的资源)里面的资源

       

    2. 若想获取项目下普通目录的资源,可以通过new File(path)的方式获取,路径默认以项目路径为根,以bin开始表示获取bin目录,以src开始表示获取src目录,以XXX开始表示获取项目下XXX目录,该方法最灵活,就算是JavaEE项目同样适用(例如WecContent,可以使用new File("WebContent")获取),唯一缺点就是不能获取jar里面的资源(因为jar包的资源不是以普通File的形式存储的)

    ### Error querying database. Cause: java.lang.IllegalArgumentException: invalid comparison: cn.xiaojian.blog.po.BlogType and java.lang.String ### Cause: java.lang.IllegalArgumentException: ...

    ### Error querying database. Cause: java.lang.IllegalArgumentException: invalid comparison: cn.xiaojian.blog.po.BlogType and java.lang.String ### Cause: java.lang.IllegalArgumentException: ...

    ### Error querying database. Cause: java.lang.IllegalArgumentException: invalid comparison: cn.xiaojian.blog.po.BlogType and java.lang.String
    ### Cause: java.lang.IllegalArgumentException: invalid comparison: cn.xiaojian.blog.po.BlogType and java.lang.String] with root cause
    java.lang.IllegalArgumentException: invalid comparison: cn.xiaojian.blog.po.BlogType and java.lang.String
    at org.apache.ibatis.ognl.OgnlOps.compareWithConversion(OgnlOps.java:92)
    at org.apache.ibatis.ognl.OgnlOps.isEqual(OgnlOps.java:142)
    at org.apache.ibatis.ognl.OgnlOps.equal(OgnlOps.java:794)
    at org.apache.ibatis.ognl.ASTNotEq.getValueBody(ASTNotEq.java:53)
    at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)
    at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)
    at org.apache.ibatis.ognl.ASTAnd.getValueBody(ASTAnd.java:61)
    at org.apache.ibatis.ognl.SimpleNode.evaluateGetValueBody(SimpleNode.java:212)
    at org.apache.ibatis.ognl.SimpleNode.getValue(SimpleNode.java:258)
    at org.apache.ibatis.ognl.Ognl.getValue(Ognl.java:494)
    ......

      在MVC开发中习惯使用原有的类作为传参方式:

      javaBean:

      

    分享图片

     

     

       该javaBean上建立扩展类:

       

    分享图片

     

     

        数据库中,blog表和blogType表存在外键关系,所以在blog类的实现上,要建立一个blogType的类做属性。

       在该查询中,显示的异常信息可知,invalid comparison: cn.xiaojian.blog.po.BlogType and java.lang.String,不能比较(blogType和String)

    分享图片

     

       sql语句的拼接中,判断该类是否为空就行了,我就照着前面的一路CV,从而忽略了这个错误(根本是没注意到这样的问题)。

      所以这里要注意啊:代码套路深,CV需谨慎啊。CV自己的代码都能坑死自己啊。

      日常报错ing,吸取更多的教训,写出更优雅的代码,同时希望能帮助到同是坎坷路上的码友们。

    'java.lang.NoClassDefFoundError 由 java.lang.ClassNotFoundException 引起的 Ljava/util/Base64 解析失败 未找到类“java.util.Base64”

    'java.lang.NoClassDefFoundError 由 java.lang.ClassNotFoundException 引起的 Ljava/util/Base64 解析失败 未找到类“java.util.Base64”

    如何解决''java.lang.NoClassDefFoundError 由 java.lang.ClassNotFoundException 引起的 Ljava/util/Base64 解析失败 未找到类“java.util.Base64”?

    我收到此错误,我已阅读该错误以解决它我必须将 import java.util.Base64 替换为 import android.util.Base64 但在我的整个项目中我只发现 Base68 result = Base64.getEncoder().encodetoString(macData); 的唯一用法 我该如何解决?而且我不能用 android.util.Base.64 替换 java.util.Base64 因为这行代码在后端

    解决方法

    这很不幸 - 这意味着您正在使用某个库,而那个库正在尝试使用 /i。 Android 选择了 Java 库,就像 android 发布时一样,现在已经是很久以前的事了。从那以后它们就没有真正更新过。 (那个 oracle v google 法庭案件可能没有帮助……)

    java.util.Base64 已添加到 https://forge.autodesk.com/en/docs/design-automation/v3/reference/cmdLine/cmdLine-inventor/(有关此信息,请参阅 javadoc 中的“since”行;任何“1.6”或以下,或者如果没有“since”行,肯定可用在 android 上。其他东西通常不是)。 java 8 现在已经 7 岁了,因此不是专门为 android 设计的库越来越有可能开始使用这些非 android 库调用。

    检查堆栈跟踪,您会找到正在执行此操作的库。恐怕除了停止使用这个库之外别无他法。您可以尝试在您的应用程序中粘贴 juBase64 impl,但这会相对棘手,因为这可能涉及一些法律问题,因此,要么没有人这样做,要么如果他们这样做,他们可能不会宣传如何。

    您可以要求这个库使用第三方库来做 base64 工作,但他们可能不想这样做,这可能不是库无法在 android 上运行的唯一问题。

    如果 android 变体是一个替代品,你可以重写这个库的类文件,但这也是一个有点笨拙、笨拙的概念,并不完全困难,但因为这不是一件正常的事情,而且通常积极不喜欢,我认为您无法轻松找到有关如何操作的文档。

    因此,建议:尝试寻找另一个图书馆。

    (Java 学习笔记) Java Threading (Java 线程)

    (Java 学习笔记) Java Threading (Java 线程)

    Java Threading (Java 线程)

    ● Process & Thread

    Processes are the abstraction of running programs: A binary image, virtualized memory, various kernel resources, an associated security context, and so on.

    Threads are the unit of execution in a process: A virtualized processor, a stack, and program state.

     

    Threads are sometimes called lightweight processes. Both processes and threads provide an execution environment, but creating a new thread requires fewer resources than creating a new process.

    Threads exist within a process — every process has at least one. Threads share the process''s resources, including memory and open files. This makes for efficient, but potentially problematic, communication.

     

    Multithreaded execution is an essential feature of the Java platform. Every application has at least one thread — or several, if you count "system" threads that do things like memory management and signal handling. But from the application programmer''s point of view, you start with just one thread, called the main thread. This thread has the ability to create additional threads, as we''ll demonstrate in the next section.

     

    ● Processes

    --Will by default not share memory

    --Most file descriptors not shared

    --Don''t share filesystem context

    --Don''t share signal handling

     

    ● Threads

    --Will by default share memory

    --Will share file descriptors

    --Will share filesystem context

    --Will share signal handling

     

    ● Thread pool

    Thread pool represents a group of worker threads that are waiting for the job and reuse many times,

     

    ● Thread life cycle & states

     

     

    Android 应用程序开发支持哪些 Java 版本我可以使用 1.8 以上的 java 版本还是 java 8

    Android 应用程序开发支持哪些 Java 版本我可以使用 1.8 以上的 java 版本还是 java 8

    如何解决Android 应用程序开发支持哪些 Java 版本我可以使用 1.8 以上的 java 版本还是 java 8?

    我在这里可以用于 Android 应用程序开发的最大版本是多少。 我正在开发一个 Android 库,我想知道我是否设置了我的库 build.gradle

    compileOptions {
        sourceCompatibility JavaVersion.VERSION_1_8
        targetCompatibility JavaVersion.VERSION_1_8
    }
    

    它将与 Android 应用程序中定义的所有先前和更高版本的 Java 版本兼容吗?

    解决方法

    暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

    如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

    小编邮箱:dio#foxmail.com (将#修改为@)

    今天关于【java】获取项目资源路径java 获取资源路径的讲解已经结束,谢谢您的阅读,如果想了解更多关于### Error querying database. Cause: java.lang.IllegalArgumentException: invalid comparison: cn.xiaojian.blog.po.BlogType and java.lang.String ### Cause: java.lang.IllegalArgumentException: ...、'java.lang.NoClassDefFoundError 由 java.lang.ClassNotFoundException 引起的 Ljava/util/Base64 解析失败 未找到类“java.util.Base64”、(Java 学习笔记) Java Threading (Java 线程)、Android 应用程序开发支持哪些 Java 版本我可以使用 1.8 以上的 java 版本还是 java 8的相关知识,请在本站搜索。

    本文标签: