Java 尝试执行Maven打包的jar文件时权限被拒绝,该文件包含对用户帐户的依赖项
绘图摘要: 我正在开发一个Maven应用程序(在VS代码中),它使用Java 尝试执行Maven打包的jar文件时权限被拒绝,该文件包含对用户帐户的依赖项,java,maven,serial-port,pom.xml,user-permissions,Java,Maven,Serial Port,Pom.xml,User Permissions,绘图摘要: 我正在开发一个Maven应用程序(在VS代码中),它使用com.fazecast.jSerialComm。我已经在同一台机器上设置了另一个用户帐户,我希望能够运行它。我设置pom.xml来构建一个jar文件,包括必要的依赖项,并将其打包 顺便说一下,这一切都发生在Ubuntu19.04上,也是我第一个使用Maven的项目 在我自己的帐户和主文件夹中测试生成的文件,它似乎工作得很好(无论我把它放在哪里)。。。但是,当我将其复制到用户帐户时,会出现以下错误: java.io.FileNo
com.fazecast.jSerialComm
。我已经在同一台机器上设置了另一个用户帐户,我希望能够运行它。我设置pom.xml来构建一个jar文件,包括必要的依赖项,并将其打包
顺便说一下,这一切都发生在Ubuntu19.04上,也是我第一个使用Maven的项目
在我自己的帐户和主文件夹中测试生成的文件,它似乎工作得很好(无论我把它放在哪里)。。。但是,当我将其复制到用户帐户时,会出现以下错误:
java.io.FileNotFoundException: /tmp/jSerialComm/1568526835050-libjSerialComm.so (Permission denied)
at java.base/java.io.FileOutputStream.open0(Native Method)
at java.base/java.io.FileOutputStream.open(FileOutputStream.java:298)
at java.base/java.io.FileOutputStream.<init>(FileOutputStream.java:237)
at java.base/java.io.FileOutputStream.<init>(FileOutputStream.java:187)
at com.fazecast.jSerialComm.SerialPort.<clinit>(SerialPort.java:227)
at main.java.app.GcodeSender.initSerialCommunication(GcodeSender.java:81)
at main.java.app.DrawingApp.main(DrawingApp.java:96)
Exception in thread "main" java.lang.UnsatisfiedLinkError: 'long com.fazecast.jSerialComm.SerialPort.openPortNative()'
at com.fazecast.jSerialComm.SerialPort.openPortNative(Native Method)
at com.fazecast.jSerialComm.SerialPort.openPort(SerialPort.java:430)
at com.fazecast.jSerialComm.SerialPort.openPort(SerialPort.java:450)
at com.fazecast.jSerialComm.SerialPort.openPort(SerialPort.java:463)
at main.java.app.GcodeSender.initSerialCommunication(GcodeSender.java:90)
at main.java.app.DrawingApp.main(DrawingApp.java:96)
我将其解释为另一个用户帐户没有访问jSerialComm
的权限,即使它内置于jar文件中,而该用户是jar文件的所有者,并且对其拥有rx
权限
我用Maven包装错了吗
谢谢你的帮助
...
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.1.2</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<classpathPrefix>lib/</classpathPrefix>
<mainClass>main.java.app.DrawingApp</mainClass>
</manifest>
<manifestEntries>
<Class-Path>.</Class-Path>
</manifestEntries>
</archive>
</configuration>
</plugin>
<plugin>
<artifactId>maven-assembly-plugin</artifactId>
<configuration>
<archive>
<manifest>
<mainClass>main.java.app.DrawingApp</mainClass>
</manifest>
</archive>
<descriptorRefs>
<descriptorRef>jar-with-dependencies</descriptorRef>
</descriptorRefs>
</configuration>
<executions>
<execution>
<id>make-assembly</id>
<phase>package</phase>
<goals>
<goal>single</goal>
</goals>
</execution>
</executions>
</plugin>
...