小编gdu*_*002的帖子

无法找到Clojure

编辑:在Bukkit论坛Github上还有一些与此问题相关的讨论.

所以,我知道有一两个人没有运气就试过这个......但我想我差不多了.

一个问题:我不懂Java,所以这对我来说有点陌生.无论如何..

所以,我在Clojure中创建了一个简单的类,如下所示:

(ns com.gdude2002.ClojurePlugin.mainclj
  (:gen-class
   :name com.gdude2002.ClojurePlugin.mainclj
   :extends org.bukkit.plugin.java.JavaPlugin)
  (:import org.bukkit.plugin.java.JavaPlugin))

(defn -onEnable [this] (java.util.logging.Logger/getLogger "Loaded clojure plugin!"))
(defn -onDisable [this] (java.util.logging.Logger/getLogger "Unloaded clojure plugin!"))
Run Code Online (Sandbox Code Playgroud)

我使用clojure的compile函数将其编译为Java类,如下所示.

(set! *compile-path* ".")
(compile 'com.gdude2002.ClojurePlugin.mainclj)
Run Code Online (Sandbox Code Playgroud)

然后我手动将它放在jar中,在com/gdude2002/ClojurePlugin/mainclj.class下(以及将plugin.yml放在root中).

到现在为止还挺好.这个方法不是关于我的代码(特别是)的bukkit婊子,我认为这是一件好事.现在,关于这个问题.

当我尝试使用这个手工制作的jar启动服务器时,我得到以下输出.

21:43:30 [SEVERE] Could not load 'plugins\plugin.jar' in folder 'plugins'
org.bukkit.plugin.InvalidPluginException: java.lang.NoClassDefFoundError: clojure/lang/IFn
Run Code Online (Sandbox Code Playgroud)

"所以,"我想,"这看起来很简单 - 它找不到Clojure,对吧?" 所以,我把clojure jar放在各种各样的地方,同样的错误.我还将META-INF/MANIFEST.MF添加到包含的jar中Class-Path: ../lib.依然没有.

因此,我认为自己很聪明,我将clojure文件夹从Clojure jar中取出并将其推入我的文件夹中,同时将文件夹放在../lib中,以及我认为可能有用的其他地方.

现在,我收到此错误..

21:51:33 [SEVERE] Could not load 'plugins\plugin.jar' in folder 'plugins'
org.bukkit.plugin.InvalidPluginException: java.lang.ExceptionInInitializerError
...
Caused …
Run Code Online (Sandbox Code Playgroud)

java clojure bukkit

5
推荐指数
1
解决办法
756
查看次数

Java中非常奇怪的套接字行为; 不总是关闭端口?

在一个大型项目的开发过程中,我们已经积累了大量的单元测试.许多这些测试通常在同一个进程中启动服务器,连接到这些服务器并关闭服务器和客户端.

但是,这些测试随机失败,并显示"无法绑定地址127.0.0.1 :( port)".重新运行测试时,错误通常会消失.

现在,我们认为这是我们测试的问题,但我们决定在Clojure中编写一个小测试,我将在下面发布(并评论非Clojure人员).

(ns test
  (:import [java.net Socket ServerSocket]))

(dotimes [n 10000] ; Run the test ten thousand times
  (let [server (ServerSocket. 10000) ; Start a server on port 10000
        client (Socket. "localhost" 10000) ; Start a client on port 10000
        p (.getLocalPort client)] ; Get the local port of the client
    (.close client) ; Close the client
    (.close server) ; Close the server
    (println "n = " n) ; Debug
    (println "p = " p) ; Debug …
Run Code Online (Sandbox Code Playgroud)

java sockets clojure

5
推荐指数
1
解决办法
1001
查看次数

SimpleDateFormat似乎给出了错误的结果

我正在使用Java 7和Clojure 1.4.

我在Clojure中编写了一些数据库测试,用于包含Date对象的表,使用OracleDB JDBC.

我需要比较我收到的日期(一个Date对象)和String- 所以我可能需要将该字符串转换为一个Date对象.经过一些谷歌搜索,我发现了Java SimpleDateFormat.

这是我使用的(有额外的东西用于调试)

(defn parseDate [date]
  (do (debug (str "Parsing date: " date ))
    (let [ dateobj (java.text.SimpleDateFormat. "dd-MMM-YY")
           parsed (do (. dateobj setLenient false) (. dateobj parse date))]
      (debug (str "Result: " parsed)) parsed)))
Run Code Online (Sandbox Code Playgroud)

我扔了一些日期,我得到以下输出..

Parsing date: 01-jan-12
Result: Mon Jan 02 00:00:00 GMT 2012
Parsing date: 01-jan-13
Result: Mon Dec 31 00:00:00 GMT 2012
Parsing date: 00-jan-12
Result: Mon Jan 02 00:00:00 …
Run Code Online (Sandbox Code Playgroud)

java date clojure

3
推荐指数
1
解决办法
721
查看次数

Python - 局部变量错误,其中变量是导入的模块

所以,我最近一直在研究IRC机器人.它存储了上次有人做某事时作为反垃圾邮件功能的一部分.它用于初始化WHO回复中的用户列表,我一直在使用RPL_NAMREPLY.

它几乎可以工作.但是,我有一个非常奇怪的问题..

import time

# ...

    def irc_unknown(self, prefix, command, params):
        """Handle packets that aren't handled by the library."""

        # Prefix: asimov.freenode.net
        # Command: RPL_BANLIST
        # Params: ['MCBans_Testing', '#mcbans-test', 'a!*@*', 'gdude2002!g@unaffiliated/gdude2002', '1330592882']

        self.runHook("unknownMessage", {"prefix": prefix, "command": command, "params": params})

        if command == "RPL_BANLIST":
            channel = params[1]
            mask = params[2]
            owner = params[3]
            time = params[4]

            if channel not in self.banlist.keys():
                done = {"done": False, "total": 1}
                banmask = {"owner": owner.split("!")[0], "ownerhost": owner, "time": time, "mask": mask,
                           "channel": channel}
                done[mask] = …
Run Code Online (Sandbox Code Playgroud)

python

1
推荐指数
1
解决办法
557
查看次数

标签 统计

clojure ×3

java ×3

bukkit ×1

date ×1

python ×1

sockets ×1