【问题标题】:Running 'activator ui' throws ClassNotFoundException with Play 2.3.2在 Play 2.3.2 中运行“activator ui”会引发 ClassNotFoundException
【发布时间】:2014-10-03 05:44:35
【问题描述】:

安装 activator 1.2.7 并从安装目录运行以下命令后:

./activator ui

抛出以下UsefulExeption异常:

kevin@comp:~/applications/activator-1.2.7$ ./activator ui
Checking for a newer version of Activator (current version 1.2.7)...
   ... our current version 1.2.7 looks like the latest.
FOUND REPO = activator-local @ file:/home/kevin/applications/activator-1.2.7/repository
java.lang.NoClassDefFoundError: play/api/UsefulException
    at activator.Global$.<init>(Global.scala:12)
    at activator.Global$.<clinit>(Global.scala)
    at activator.UIMain.run(UIMain.scala:106)
    at activator.UIMain.run(UIMain.scala:87)
    at xsbt.boot.Launch$$anonfun$run$1.apply(Launch.scala:109)
    at xsbt.boot.Launch$.withContextLoader(Launch.scala:129)
    at xsbt.boot.Launch$.run(Launch.scala:109)
    at xsbt.boot.Launch$$anonfun$apply$1.apply(Launch.scala:36)
    at xsbt.boot.Launch$.launch(Launch.scala:117)
    at xsbt.boot.Launch$.apply(Launch.scala:19)
    at xsbt.boot.Boot$.runImpl(Boot.scala:44)
    at xsbt.boot.Boot$.main(Boot.scala:20)
    at xsbt.boot.Boot.main(Boot.scala)
Caused by: java.lang.ClassNotFoundException: play.api.UsefulException
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)
    ... 13 more

如果我使用sudo 以超级用户身份运行activator ui,则不会出现此问题。我希望能够以正常权限启动激活器 ui。

在 activator 文件夹中运行 ls -lah 会产生以下输出:

kevin@ubuntu:~/applications$ ls -lah ./activator-1.2.7
total 1.2M
drwxr-xr-x   4 kevin kevin 4.0K Aug 10 16:11 .
drwxr-xr-x   6 kevin kevin 4.0K Aug 10 15:46 ..
-rwxr--r--   1 kevin kevin 9.5K Aug  5 17:35 activator
-rwxr--r--   1 kevin kevin 6.9K Aug  5 17:35 activator.bat
-rwxr--r--   1 kevin kevin 1.2M Aug  5 17:35 activator-launch-1.2.7.jar
-rw-r--r--   1 kevin kevin 5.8K Aug  5 17:35 LICENSE.html
-rw-r--r--   1 kevin kevin 6.3K Aug  5 17:35 README.html
drwxr-xr-x 132 kevin kevin 4.0K Aug  5 17:35 repository
drwxr-xr-x  12 kevin kevin 4.0K Aug  5 17:35 templates
kevin@ubuntu:~/applications$ 

我在 Ubuntu 14.04 上使用 Play 2.3.2 / Activator 1.2.7。

【问题讨论】:

  • 您似乎正在以user 的身份执行activator 命令,尽管发现的本地库存储库激活器属于kevin~/applications/activator-1.2.7 是否解析为 /home/kevin/applications/activator-1.2.7/
  • 抱歉,代表我提出的问题很糟糕。我更改了我的用户名以掩盖它,但没有进一步更改它。我现在就改回来。
  • 如果您对激活器文件夹具有所需的权限,您可以执行 ls -al 并检查。
  • 这是一个非常好的主意 - 你能ls -l /home/kevin/applications/activator-1.2.7 并将输出粘贴到问题中吗?
  • 我用ls 命令的输出更新了问题。

标签: playframework playframework-2.0 sbt typesafe-activator


【解决方案1】:

在我看来,您当前的用户没有权限访问“/home/kevin/applications/activator-1.2.7/”下的文件

您应该授予他访问这些文件的权限。

【讨论】:

  • 问题是为什么激活器需要其他用户的文件?这是怎么发生的?!
  • 这取决于操作系统,但在大多数情况下,当您从互联网下载存档然后解压缩时,所有文件都会有 -rw-rw-r-- 并且您无法执行它们。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-24
  • 1970-01-01
  • 1970-01-01
  • 2017-02-14
  • 2016-09-10
  • 2015-11-16
相关资源
最近更新 更多