正如我在这里问到并回答的那样,我发现运行' sudo lein deps会导致一些问题迫使我跑' sudo lein swank',这很烦人.而我被告知不要使用sudo的.我使用的是Mac OS X 10.6.4.
所以,我会尝试卸载并重新安装leiningen.
我按照这里解释的步骤.
使用' http://github.com/technomancy/leiningen.git '将leiningen下载到〜/ bin/leinigen
这是这个问题的后续行动.
运行'lein jar'后,我得到'myproject-1.0.0-SNAPSHOT.jar',它不包含clojure-1.2.0-beta1.jar和clojure-contrib-1.2.0-beta1.jar.
运行'lein uberjar'给了我两个jar文件.第一个(以-standalone.jar结尾)是jar包含所有内容,第二个与使用'lein jar'生成的jar相同.
这是第二个罐子的问题.使用第一个jar运行没问题,正如我在上一篇文章中所解释的那样.
我跑的时候
java -cp PATH_TO_THE_CLOJURE_AND_CONTRIB.jar:$CLASSPATH -jar myproject-1.0.0-SNAPSHOT.jar'
,我收到以下错误.
Caused by: java.lang.ClassNotFoundException: clojure.lang.IFn
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
可能有什么问题,如果我使用-cp选项指向jar文件,我认为我可以像'myproject-1.0.0-SNAPSHOT-standalone.jar'一样使用'myproject-1.0.0-SNAPSHOT.jar'.
还有什么我必须做的吗?
java -cp ALLTHE_JAR_PATH myproject.core
解决了这个问题.
print OBJECT打电话OBJECT.__str__(),然后什么时候OBJECT.__repr__()打电话?我看到,print OBJECT调用OBJECT.__repr__()时OBJECT.__str__()不存在,但我希望这不是调用的唯一途径__repr__().
可能重复:
如何在.Net中的格式字符串中转义括号
如何在C#中放入{或}逐字输入字符串?
using System;
class DoFile {
static void Main(string[] args) {
string templateString = @"
\{{0}\}
{1}
{2}
";
Console.WriteLine(templateString, "a", "b", "c");
}
}
Run Code Online (Sandbox Code Playgroud)
当我在逐字字符串中使用'{'或'}'时出现错误,我想这是因为'{'或'}'用于参数标记,例如{0}, {1}, {2}.\{不起作用.
Unhandled Exception: System.FormatException: Input string was not in a correct format.
at System.String.ParseFormatSpecifier (System.String str, System.Int32& ptr, System.Int32& n, System.Int32& width, System.Boolean& left_align, System.String& format) [0x00000] in <filename unknown>:0
at System.String.FormatHelper (System.Text.StringBuilder result, IFormatProvider provider, System.String format, System.Object[] args) [0x00000] in <filename …Run Code Online (Sandbox Code Playgroud) 我有两个班级Owning和OwningAccessor.这些文件位于同一目录中.
public class Owning {
String _name = "";
public void printBanner()
{
}
public void printOwning(double amount)
{
printBanner();
//print details
System.out.println("name:" + _name);
System.out.println("amount:" + amount);
}
}
public class OwningAccessor {
public void access()
{
Owning o = new Owning();
o.printOwning(500);
}
}
Run Code Online (Sandbox Code Playgroud)
当我尝试编译OwningAccessor时javac -cp . OwningAccessor.java,我得到了编译错误.
symbol : class Owning
location: class smcho.OwningAccessor
Owning o = new Owning();
^
OwningAccessor.java:6: cannot find symbol
symbol : class Owning
location: class smcho.OwningAccessor
Owning o …Run Code Online (Sandbox Code Playgroud) __repr__python 的功能很自然,因为在自动使用print OBJECT时会调用它.
它有红宝石等价吗?我认为这是to_s,但是,我有p OBJECT似乎没有调用to_s方法.
我弄错了,p OBJECT似乎调用to_s方法如下.我从我对其他问题的答案中得到了一些提示.- Ruby的to_s方法问题(来自Axe第2版)
# Sample code from Programing Ruby, page 24
class Song
def to_s
"Song"
end
end
class Songson < Song
def to_s
super + "<Songson>"
end
end
song = Songson.new()
p song
Run Code Online (Sandbox Code Playgroud) 在找到C#和C++之间的互操作方法的过程中,我发现这篇文章解释了P/Invoke.
我读了很多文章声称C++/CLI不是精确的C++,需要一些努力来修改原始的C++代码.
我想问一下,当我想要从C#对象中使用一些C++对象(代码/数据)时,最佳方法是什么.
假设我有这个Hello.scala.
object HelloWorld {
def main(args: Array[String]) {
println("Hello, world!")
}
}
Run Code Online (Sandbox Code Playgroud)
我可以运行'scalac'来获取HelloWorld.class和HelloWorld $ .class.我可以使用'scala -classpath运行.你好'.但是我不能运行'java -cp.你好'.
我可以得到一个包含所有内容的jar用IntelliJ + scala插件运行scala文件文件,我认为这是比proguard更好的选择.
感谢Moritz,我可以制作一个用java运行的jar文件.这是整体结构.
|-- classes | |-- HelloWorld$.class | |-- HelloWorld.class | `-- META-INF | `-- MANIFEST.MF `-- your.pro
your.pro具有以下内容.
-injar classes
-injar /Users/smcho/bin/scala/lib/scala-library.jar(!META-INF/MANIFEST.MF)
-outjar main.jar
-libraryjar /System/Library/Frameworks/JavaVM.framework/Versions/1.6/Classes/classes.jar
-dontwarn
-dontnote
-ignorewarnings
-optimizationpasses 2
-optimizations !code/allocation/variable
-keep,allowoptimization,allowshrinking class * { *; }
-keepattributes SourceFile,LineNumberTable
-keepclasseswithmembers public class HelloWorld { public static void main(java.lang.String[]); } … Java提供了jar文件,以便将所有类文件和jar文件合并到一个文件中.C#是否提供等效/类似功能?
我希望以在程序初始化代码中只设置一次的方式控制全局变量(或全局范围变量),并在此之后锁定它们.
我使用UPPER_CASE_VARIABLES作为全局变量,但我想确定无论如何都不要更改变量.