我在src/main/clojure/za/co/pb/maven_test/test.clj文件中有以下内容:
(ns za.co.pb.maven-test.test
(:gen-class))
(defn -main []
(println "Hello world!"))
Run Code Online (Sandbox Code Playgroud)
我还有一个POM,它在编译执行时对clojure-maven-plugin有必要的依赖.
如果我执行一个mvn package命令,我得到一个target/maven-test-1.0-SNAPSHOT.jar文件,如果我查看classes文件夹,我在文件夹中有这些文件target/classes/za/co/pb/maven_test:
test.classtest.cljtest__init.classtest$loading__4410__auto__.classtest$_main.class据我所知,这是恰当的.
但是,当我运行此命令时:
java -cp target\app-1.0-SNAPSHOT.jar za.co.pb.maven_test.test
我明白了:
Exception in thread "main" java.lang.NoClassDefFoundError: clojure/lang/IFn
Caused by: java.lang.ClassNotFoundException: clojure.lang.IFn
at java.net.URLClassLoader$1.run(URLClassLoader.java:217)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
at java.lang.ClassLoader.loadClass(ClassLoader.java:321)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
at java.lang.ClassLoader.loadClass(ClassLoader.java:266)
Could not find the main class: za.co.pb.maven_test.test. Program will exit.
Run Code Online (Sandbox Code Playgroud) 我试图创建一种情况,ToggleButton任何时候都可以打开两个分组中的一个或两个.我遇到的问题是,如果我更改后备变量的状态,则UI状态不会更新.
我确实已经INotifyPropertyChanged实施了.
我创建了ToggleButton这样的:
<ToggleButton IsChecked="{Binding Path=IsPermanentFailureState, Mode=TwoWay}"
HorizontalContentAlignment="Center"
VerticalContentAlignment="Center">
<TextBlock TextWrapping="Wrap"
TextAlignment="Center">Permanent Failure</TextBlock>
</ToggleButton>
<ToggleButton IsChecked="{Binding Path=IsTransitoryFailureState, Mode=TwoWay}"
HorizontalContentAlignment="Center"
VerticalContentAlignment="Center">
<TextBlock TextWrapping="Wrap"
TextAlignment="Center">Temporary Failure</TextBlock>
</ToggleButton>
Run Code Online (Sandbox Code Playgroud)
这是我的支持属性(我使用MVVM模式,其他绑定工作,IE点击ToggleButton确实输入这些属性设置.当我通过代码更改状态时,切换按钮不会改变视觉状态.IE I我将backing属性设置为false,但按钮保持选中状态.
public bool? IsPermanentFailureState
{
get { return isPermFailure; }
set
{
if (isPermFailure != value.Value)
{
NotifyPropertyChanged("IsPermanentFailureState");
}
isPermFailure = value.Value;
if (isPermFailure) IsTransitoryFailureState = false;
}
}
public bool? IsTransitoryFailureState
{
get { return isTransitoryFailureState; }
set
{
if (isTransitoryFailureState != value.Value)
{
NotifyPropertyChanged("IsTransitoryFailureState"); …Run Code Online (Sandbox Code Playgroud) 我有一个TreeView含有一级子项目的WPF .我正在使用HierarchicalDataTemplate顶级项目,因此子项目绑定到后备数据列表.
当我进行拖放操作时,我想找出新项目应该去的目标列表中的哪个位置.我已将这些情景分解为以下情况:
TreeViewTreeViewItems 上或其附近盘旋(被删除的项目必须到列表的后面)我的问题是,我怎么知道TreeViewItem我在徘徊?我怎么知道它是父类型还是子类型TreeViewItem?(他们有不同的DataContext数据类型)我应该进行某种类型的测试吗?我如何知道哪个顶级项目拥有我正在盘旋的当前子项目?
我试图在瞬态映射中获取所有键的seq:
(keys {3 4 5 6 7 8}) 给 (3 5 7)
正如我所料,但是:
(keys (transient {3 4 5 6 7 8}))
Run Code Online (Sandbox Code Playgroud)
给
#<CompilerException java.lang.IllegalArgumentException: Don't know how to create ISeq from: clojure.lang.PersistentArrayMap$TransientArrayMap (NO_SOURCE_FILE:346)>
Run Code Online (Sandbox Code Playgroud)
同样,我如何使用瞬态地图进行处理?
(map identity {3 4 5 6})
Run Code Online (Sandbox Code Playgroud)
给
([3 4] [5 6])
Run Code Online (Sandbox Code Playgroud)
但
(map identity (transient {3 4 5 6}))
Run Code Online (Sandbox Code Playgroud)
给
#<IllegalArgumentException java.lang.IllegalArgumentException: Don't know how to create ISeq from: clojure.lang.PersistentArrayMap$TransientArrayMap>
Run Code Online (Sandbox Code Playgroud) 我正在尝试在我的网站中构建一个功能,我有一个切换按钮.当按下按钮时,应显示div,当按钮正常时,div应该是不可见的.div本身也有一个接近的'X',如果点击,应该使按钮正常(即没有按下)
问题是我不知道如何取消激活按钮.我可以删除active更新DOM 的类,但是它从bootstrap中的某个地方返回(DOM更改上的Chrome断点显示了堆栈跟踪)
这是我的代码:
var addInputButton = function(id, txt, clk) {
var btn = $('<a>')
.text(txt)
.attr("id", id)
.addClass("btn")
.addClass("btn-mini")
.attr("data-toggle", "button")
//.addClass("btn-info")
.click(clk);
$('#input_help_section')
.append(btn);
return btn;
};
// CHEATSHEET -----------------
(function() {
var toggleName = "markdownCheatSheetIsVisible";
var btnId = "markdownCheatsheetToggleButton";
var box = $("#markdownCheatsheet");
var showBox = function() {
var cheatSheetButton = $('#' + btnId);
if (!cheatSheetButton.hasClass("active")) {
cheatSheetButton.toggle();
cheatSheetButton.show();
}
box.show();
};
var hideBox = function() {
var cheatSheetButton = $('#' + btnId);
if (cheatSheetButton.hasClass("active")) …Run Code Online (Sandbox Code Playgroud) 我正在查看mercurial手册,第6章"使用多个分支".在那里,作者指出,如果您拥有相同软件的单独版本/分支,则以隐含的显而易见的方式将软件的每个分支托管在单独的存储库中是有意义的.
我知道Mercurial支持标签(这是在subversion AFAIK中完成分支的方式).为什么要使用不同的存储库而不是标签进行分支管理?
我正在使用在ubuntu vm上运行的Zookeeper v3.3.3 + dfsg2-1ubuntu1.(VM正在使用NAT网络连接运行)
在我的开发机器(Windows 7)上,如果我运行:zkCli.cmd -server 10.10.135.19:2181它连接正常,我可以执行creates,gets等.
我有一个C#4应用程序,它对Org.Apache.ZooKeeper v1.0.0.0具有NuGet依赖性.
我通过以下方式使用它:
class watcher : IWatcher
{
private readonly ManualResetEventSlim _connected = new ManualResetEventSlim(false);
private WatchedEvent _event;
public void WaitUntilConnected()
{
_connected.Wait();
if (_event == null) throw new ApplicationException("bad state");
if (_event.State != KeeperState.SyncConnected)
throw new ApplicationException("cannot connect");
}
public void Process(WatchedEvent @event)
{
_event = @event;
_connected.Set();
}
}
...
public void TestZooKeeper()
{
_countdownWatcher = new watcher();
_zk = new ZooKeeper(
Settings.Default.ZookeeperConnectionString, …Run Code Online (Sandbox Code Playgroud)