SonarQube抱怨" 字符串不包含格式说明符".使用时org.slf4j.Logger,特别是方法" public void debug(String msg)".例如
log.info("message");
Run Code Online (Sandbox Code Playgroud)
它指的是这条规则:https://wiki.sei.cmu.edu/confluence/display/c/FIO47-C.+Use+valid+format+strings
但是,在此规则中,我们可以找到以下引用:
每个转换规范由%字符引入(按顺序)by
零个或多个标志(以任何顺序),它们修改转换规范的含义
是我错过了什么,还是这个规则没有得到很好的实施?有这方面的经验吗?
我有一个使用 Maven 构建的小应用程序:
\n\n <plugin>\n <groupId>org.apache.maven.plugins</groupId>\n <artifactId>maven-assembly-plugin</artifactId>\n <configuration>\n <archive>\n <manifest>\n <mainClass>be.scripts.batchconverter.MainScript</mainClass>\n </manifest>\n </archive>\n </configuration>\n <executions>\n <execution>\n <id>create-executale-jar</id>\n <phase>package</phase>\n <goals>\n <goal>single</goal>\n </goals>\n <configuration>\n <finalName>batchconverter</finalName>\n <appendAssemblyId>false</appendAssemblyId>\n <descriptorRefs>\n <descriptorRef>jar-with-dependencies</descriptorRef>\n </descriptorRefs>\n </configuration>\n </execution>\n </executions>\n </plugin>\nRun Code Online (Sandbox Code Playgroud)\n\n我可以使用“java -jar batchconverter”运行它,但是当我尝试使用“chmod +x batchconverter.jar”然后“./batchconverter.jar”执行它时,我收到此一般错误:
\n\ninvalid file (bad magic number): Exec format error\nRun Code Online (Sandbox Code Playgroud)\n\n我的 JDK 是 oracle,“1.8.0_121”,我安装了 binfmt 支持,并且运行的是 ubuntu 16.04
\n\n这是清单:
\n\nManifest-Version: 1.0\nArchiver-Version: Plexus Archiver\nBuilt-By: jschoreels\nCreated-By: Apache Maven 3.3.9\nBuild-Jdk: 1.8.0_121\nMain-Class: be.scripts.batchconverter.MainScript\nRun Code Online (Sandbox Code Playgroud)\n\n以及 ls 结果(证明 x 权限)
\n\n-rwxrwxr-x 1 jschoreels jschoreels 4,9M …Run Code Online (Sandbox Code Playgroud)