JAVA支持平台“依赖”概念吗?

Dee*_*epN 2 java maven

我在我的项目上执行“MAVEN INSTALL”时在控制台中发现了以下日志,

\n\n
[INFO] Search took 70ms\n[INFO] Theme "VAADIN\\themes\\mytheme" updated\n[INFO] \n[INFO] --- vaadin-maven-plugin:7.5.10:compile-theme (default) @ MyUI ---\n[INFO] Updating theme VAADIN\\themes\\mytheme\n[INFO] Theme "VAADIN\\themes\\mytheme" compiled\n[INFO] \n[INFO] --- maven-resources-plugin:2.5:resources (default-resources) @ MyUI ---\n[debug] execute contextualize\n[WARNING] Using platform encoding (Cp1252 actually) to copy filtered\n          resources, i.e. build is platform dependent!\n[INFO] Copying 1 resource\n[INFO] \n[INFO] --- vaadin-maven-plugin:7.5.10:resources (default) @ MyUI ---\n[INFO] auto discovered modules [com.ui.AppWidgetset]\n[INFO] 3 source files from GWT module com.ui.AppWidgetset\n
Run Code Online (Sandbox Code Playgroud)\n\n

他们在这里谈论的 \xe2\x80\x9cPlatform dependent\xe2\x80\x9d 概念是什么?由于 JVM,JAVA 支持平台独立的概念,因此 JAVA 的 \xe2\x80\x9cfeature\xe2\x80\x9d (我称之为功能)使它在控制台中打印这一行?

\n\n

这意味着我的所有文件都已加密(通过 SEE),如果我将 WAR 放入非加密机器中(如果密钥不同),那么应用程序可能无法运行?

\n\n

JAVA不应该允许这种“功能”。

\n\n

请注意: 我可能以完全错误的方式思考这一点,或者我错过了眼前的一些东西。抱歉,但还是想澄清一下。

\n

das*_*ith 5

在构建项目时,Maven 插件可能会复制资源。这就是为什么它显示此警告。如果你想让它独立可以在pom文件中添加以下内容

<project>
  ...
  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>
  ...
</project>
Run Code Online (Sandbox Code Playgroud)

这其实是maven中的一个常见问题。

此警告或类似警告是由处理纯文本文件但尚未配置为使用特定文件编码的插件发出的。因此,消除警告只需找出哪个插件发出警告以及如何为其配置文件编码即可。这就像将以下属性添加到 POM(或其父 POM 之一)一样简单: